Files

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`;