68 lines
2.1 KiB
Plaintext
68 lines
2.1 KiB
Plaintext
-- WŁĄCZ/wyłącz FK zależnie od etapu migracji
|
|
PRAGMA foreign_keys = OFF;
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
-- 1) Nowa tabela z właściwym FK (ON DELETE CASCADE)
|
|
CREATE TABLE wplata_new (
|
|
id INTEGER PRIMARY KEY,
|
|
zbiorka_id INTEGER NOT NULL,
|
|
kwota REAL NOT NULL,
|
|
data DATETIME,
|
|
opis TEXT,
|
|
FOREIGN KEY(zbiorka_id) REFERENCES zbiorka(id) ON DELETE CASCADE
|
|
);
|
|
|
|
-- 2) (opcjonalnie) upewnij się, że nie ma „sierotek”
|
|
-- SELECT w.* FROM wplata w LEFT JOIN zbiorka z ON z.id = w.zbiorka_id WHERE z.id IS NULL;
|
|
|
|
-- 3) Kopiowanie danych
|
|
INSERT INTO wplata_new (id, zbiorka_id, kwota, data, opis)
|
|
SELECT id, zbiorka_id, kwota, data, opis
|
|
FROM wplata;
|
|
|
|
-- 4) Usunięcie starej tabeli
|
|
DROP TABLE wplata;
|
|
|
|
-- 5) Zmiana nazwy nowej tabeli na właściwą
|
|
ALTER TABLE wplata_new RENAME TO wplata;
|
|
|
|
-- 6) Odtwórz indeksy/trigger-y jeśli jakieś były (przykład indeksu po FK)
|
|
-- CREATE INDEX idx_wplata_zbiorka_id ON wplata(zbiorka_id);
|
|
|
|
COMMIT;
|
|
|
|
PRAGMA foreign_keys = ON;
|
|
|
|
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
PRAGMA foreign_keys=OFF;
|
|
BEGIN TRANSACTION;
|
|
|
|
ALTER TABLE global_settings ADD COLUMN logo_url TEXT DEFAULT '';
|
|
ALTER TABLE global_settings ADD COLUMN site_title TEXT DEFAULT '';
|
|
ALTER TABLE global_settings ADD COLUMN show_logo_in_navbar BOOLEAN DEFAULT 0;
|
|
|
|
|
|
|
|
COMMIT;
|
|
PRAGMA foreign_keys=ON;
|
|
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
|
|
-- 1) Dodajemy nowe kolumny (SQLite pozwala tylko na ADD COLUMN)
|
|
ALTER TABLE global_settings ADD COLUMN navbar_brand_mode TEXT DEFAULT 'text';
|
|
ALTER TABLE global_settings ADD COLUMN footer_brand_mode TEXT DEFAULT 'text';
|
|
ALTER TABLE global_settings ADD COLUMN footer_text TEXT;
|
|
|
|
-- 2) Backfill: zgodność wsteczna z show_logo_in_navbar
|
|
UPDATE global_settings
|
|
SET navbar_brand_mode = 'logo'
|
|
WHERE COALESCE(show_logo_in_navbar, 0) = 1;
|
|
|
|
-- 3) Upewnij się, że wartości są ustawione (na wypadek NULL-i)
|
|
UPDATE global_settings
|
|
SET navbar_brand_mode = COALESCE(navbar_brand_mode, 'text'),
|
|
footer_brand_mode = COALESCE(footer_brand_mode, 'text'); |