62 lines
1.9 KiB
SQL
62 lines
1.9 KiB
SQL
-- Migration: Drop legacy betriebseinnahmen and betriebsausgaben tables
|
|
-- This consolidates all transaction data into the buchungen table
|
|
|
|
-- STEP 1: Copy existing betriebseinnahmen into buchungen
|
|
-- Only copy those that don't already have a linked Buchung (via betriebseinnahmeId)
|
|
INSERT INTO `buchungen` (id, companyId, date, account, type, amount, description,
|
|
kategorie, steuersatz, zahlungsart, isBusinessRecord, createdAt, updatedAt)
|
|
SELECT
|
|
CONCAT('migr-ein-', e.id),
|
|
e.companyId,
|
|
e.datum,
|
|
e.zahlungsart,
|
|
'EINLAGE',
|
|
e.betrag,
|
|
e.beschreibung,
|
|
e.kategorie,
|
|
e.steuersatz,
|
|
e.zahlungsart,
|
|
true,
|
|
e.createdAt,
|
|
e.updatedAt
|
|
FROM `betriebseinnahmen` e
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM `buchungen` b WHERE b.betriebseinnahmeId = e.id
|
|
);
|
|
|
|
-- STEP 2: Copy existing betriebsausgaben into buchungen
|
|
INSERT INTO `buchungen` (id, companyId, date, account, type, amount, description,
|
|
kategorie, steuersatz, zahlungsart, isBusinessRecord, createdAt, updatedAt)
|
|
SELECT
|
|
CONCAT('migr-aus-', a.id),
|
|
a.companyId,
|
|
a.datum,
|
|
a.zahlungsart,
|
|
'ENTNAHME',
|
|
a.betrag,
|
|
a.beschreibung,
|
|
a.kategorie,
|
|
a.steuersatz,
|
|
a.zahlungsart,
|
|
true,
|
|
a.createdAt,
|
|
a.updatedAt
|
|
FROM `betriebsausgaben` a
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM `buchungen` b WHERE b.betriebsausgabeId = a.id
|
|
);
|
|
|
|
-- STEP 3: Remove FK constraints before dropping columns/tables
|
|
ALTER TABLE `buchungen` DROP FOREIGN KEY `buchungen_betriebseinnahmeId_fkey`;
|
|
ALTER TABLE `buchungen` DROP FOREIGN KEY `buchungen_betriebsausgabeId_fkey`;
|
|
|
|
-- STEP 4: Remove old linking columns from buchungen
|
|
ALTER TABLE `buchungen` DROP INDEX `buchungen_betriebseinnahmeId_key`;
|
|
ALTER TABLE `buchungen` DROP INDEX `buchungen_betriebsausgabeId_key`;
|
|
ALTER TABLE `buchungen` DROP COLUMN `betriebseinnahmeId`;
|
|
ALTER TABLE `buchungen` DROP COLUMN `betriebsausgabeId`;
|
|
|
|
-- STEP 5: Drop old tables
|
|
DROP TABLE `betriebsausgaben`;
|
|
DROP TABLE `betriebseinnahmen`;
|