42 lines
2.0 KiB
SQL
42 lines
2.0 KiB
SQL
-- CreateTable for BuchungKategorie
|
|
CREATE TABLE `buchung_kategorien` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`companyId` VARCHAR(191) NOT NULL,
|
|
`name` VARCHAR(191) NOT NULL,
|
|
`typ` VARCHAR(191) NOT NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
INDEX `buchung_kategorien_companyId_idx`(`companyId`),
|
|
UNIQUE INDEX `buchung_kategorien_companyId_name_typ_key`(`companyId`, `name`, `typ`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- AddForeignKey for BuchungKategorie
|
|
ALTER TABLE `buchung_kategorien` ADD CONSTRAINT `buchung_kategorien_companyId_fkey` FOREIGN KEY (`companyId`) REFERENCES `companies`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AlterTable `buchungen` - add new columns
|
|
ALTER TABLE `buchungen` ADD COLUMN `kategorie` VARCHAR(191) NULL;
|
|
ALTER TABLE `buchungen` ADD COLUMN `steuersatz` INT NULL;
|
|
ALTER TABLE `buchungen` ADD COLUMN `zahlungsart` ENUM('KASSE', 'BANK') NULL;
|
|
ALTER TABLE `buchungen` ADD COLUMN `isBusinessRecord` BOOLEAN NOT NULL DEFAULT false;
|
|
|
|
-- Add index for isBusinessRecord
|
|
ALTER TABLE `buchungen` ADD INDEX `buchungen_isBusinessRecord_idx`(`isBusinessRecord`);
|
|
|
|
-- Migrate existing data from betriebseinnahmen/betriebsausgaben to Buchung
|
|
-- This is handled by the post-migration script
|
|
|
|
-- AlterTable `betriebseinnahmen` - change kategorie from Enum to String
|
|
ALTER TABLE `betriebseinnahmen` MODIFY `kategorie` VARCHAR(191) NOT NULL;
|
|
ALTER TABLE `betriebseinnahmen` MODIFY `steuersatz` INT NOT NULL DEFAULT 0;
|
|
|
|
-- AlterTable `betriebsausgaben` - change kategorie from Enum to String
|
|
ALTER TABLE `betriebsausgaben` MODIFY `kategorie` VARCHAR(191) NOT NULL;
|
|
ALTER TABLE `betriebsausgaben` MODIFY `steuersatz` INT NOT NULL DEFAULT 0;
|
|
|
|
-- Drop old foreign key constraints from buchungen (if they exist from previous migration)
|
|
-- These will be re-added if needed, but for now we're consolidating
|
|
|
|
-- Note: The enum columns EinnahmeKategorie and AusgabeKategorie are automatically
|
|
-- dropped by Prisma when they're no longer referenced in the schema.
|