fix(migrations): support pgsql dialect in 2025_12_22_1200* update and constraint drop
This commit is contained in:
parent
ecd2da5688
commit
d8416d897b
|
|
@ -28,12 +28,22 @@ public function up(): void
|
||||||
// Nota: per conti con iban NULL non è possibile discriminare senza un id.
|
// Nota: per conti con iban NULL non è possibile discriminare senza un id.
|
||||||
try {
|
try {
|
||||||
if (Schema::hasTable('dati_bancari')) {
|
if (Schema::hasTable('dati_bancari')) {
|
||||||
DB::statement(
|
if (DB::connection()->getDriverName() === 'mysql') {
|
||||||
"UPDATE contabilita_movimenti_banca m " .
|
DB::statement(
|
||||||
"JOIN dati_bancari d ON d.stabile_id = m.stabile_id AND d.iban IS NOT NULL AND d.iban != '' AND d.iban = m.iban " .
|
"UPDATE contabilita_movimenti_banca m " .
|
||||||
"SET m.conto_id = d.id " .
|
"JOIN dati_bancari d ON d.stabile_id = m.stabile_id AND d.iban IS NOT NULL AND d.iban != '' AND d.iban = m.iban " .
|
||||||
"WHERE m.conto_id IS NULL AND m.iban IS NOT NULL AND m.iban != ''"
|
"SET m.conto_id = d.id " .
|
||||||
);
|
"WHERE m.conto_id IS NULL AND m.iban IS NOT NULL AND m.iban != ''"
|
||||||
|
);
|
||||||
|
} elseif (DB::connection()->getDriverName() === 'pgsql') {
|
||||||
|
DB::statement(
|
||||||
|
"UPDATE contabilita_movimenti_banca m " .
|
||||||
|
"SET conto_id = d.id " .
|
||||||
|
"FROM dati_bancari d " .
|
||||||
|
"WHERE d.stabile_id = m.stabile_id AND d.iban IS NOT NULL AND d.iban != '' AND d.iban = m.iban " .
|
||||||
|
"AND m.conto_id IS NULL AND m.iban IS NOT NULL AND m.iban != ''"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable) {
|
} catch (Throwable) {
|
||||||
// best-effort
|
// best-effort
|
||||||
|
|
|
||||||
|
|
@ -27,12 +27,22 @@ public function up(): void
|
||||||
// Backfill: collega saldi esistenti al conto (dati_bancari) per IBAN.
|
// Backfill: collega saldi esistenti al conto (dati_bancari) per IBAN.
|
||||||
try {
|
try {
|
||||||
if (Schema::hasTable('dati_bancari')) {
|
if (Schema::hasTable('dati_bancari')) {
|
||||||
DB::statement(
|
if (DB::connection()->getDriverName() === 'mysql') {
|
||||||
"UPDATE contabilita_saldi_conti s " .
|
DB::statement(
|
||||||
"JOIN dati_bancari d ON d.stabile_id = s.stabile_id AND d.iban IS NOT NULL AND d.iban != '' AND d.iban = s.iban " .
|
"UPDATE contabilita_saldi_conti s " .
|
||||||
"SET s.conto_id = d.id " .
|
"JOIN dati_bancari d ON d.stabile_id = s.stabile_id AND d.iban IS NOT NULL AND d.iban != '' AND d.iban = s.iban " .
|
||||||
"WHERE s.conto_id IS NULL AND s.iban IS NOT NULL AND s.iban != ''"
|
"SET s.conto_id = d.id " .
|
||||||
);
|
"WHERE s.conto_id IS NULL AND s.iban IS NOT NULL AND s.iban != ''"
|
||||||
|
);
|
||||||
|
} elseif (DB::connection()->getDriverName() === 'pgsql') {
|
||||||
|
DB::statement(
|
||||||
|
"UPDATE contabilita_saldi_conti s " .
|
||||||
|
"SET conto_id = d.id " .
|
||||||
|
"FROM dati_bancari d " .
|
||||||
|
"WHERE d.stabile_id = s.stabile_id AND d.iban IS NOT NULL AND d.iban != '' AND d.iban = s.iban " .
|
||||||
|
"AND s.conto_id IS NULL AND s.iban IS NOT NULL AND s.iban != ''"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable) {
|
} catch (Throwable) {
|
||||||
// best-effort
|
// best-effort
|
||||||
|
|
@ -41,16 +51,17 @@ public function up(): void
|
||||||
// Indici legacy: unique(stabile_id, iban, data_saldo) non permette più casse con iban NULL.
|
// Indici legacy: unique(stabile_id, iban, data_saldo) non permette più casse con iban NULL.
|
||||||
// Passiamo a unique(stabile_id, conto_id, data_saldo) (più coerente con la UI per singolo conto).
|
// Passiamo a unique(stabile_id, conto_id, data_saldo) (più coerente con la UI per singolo conto).
|
||||||
try {
|
try {
|
||||||
Schema::table('contabilita_saldi_conti', function (Blueprint $table) {
|
if (DB::connection()->getDriverName() === 'pgsql') {
|
||||||
$table->dropUnique(['stabile_id', 'iban', 'data_saldo']);
|
DB::statement('ALTER TABLE "contabilita_saldi_conti" DROP CONSTRAINT IF EXISTS "contabilita_saldi_conti_stabile_id_iban_data_saldo_unique"');
|
||||||
});
|
DB::statement('DROP INDEX IF EXISTS "contabilita_saldi_conti_stabile_id_iban_data_saldo_index"');
|
||||||
} catch (Throwable) {
|
} else {
|
||||||
// ignore
|
Schema::table('contabilita_saldi_conti', function (Blueprint $table) {
|
||||||
}
|
$table->dropUnique(['stabile_id', 'iban', 'data_saldo']);
|
||||||
try {
|
});
|
||||||
Schema::table('contabilita_saldi_conti', function (Blueprint $table) {
|
Schema::table('contabilita_saldi_conti', function (Blueprint $table) {
|
||||||
$table->dropIndex(['stabile_id', 'iban', 'data_saldo']);
|
$table->dropIndex(['stabile_id', 'iban', 'data_saldo']);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
} catch (Throwable) {
|
} catch (Throwable) {
|
||||||
// ignore
|
// ignore
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user