another editing installation
This commit is contained in:
parent
d746b6aa45
commit
20a9c1bb12
@ -43,7 +43,6 @@ return [
|
|||||||
'20260221_fix_pos_invoices_columns.sql',
|
'20260221_fix_pos_invoices_columns.sql',
|
||||||
'20260221_fix_supplier_foreign_keys.sql',
|
'20260221_fix_supplier_foreign_keys.sql',
|
||||||
'20260318_add_outlet_id_to_purchases.sql',
|
'20260318_add_outlet_id_to_purchases.sql',
|
||||||
'20260318_create_outlets_table.sql',
|
|
||||||
'20260318_multi_outlet_schema.sql',
|
'20260318_multi_outlet_schema.sql',
|
||||||
'20260318_local_definitions.sql',
|
'20260318_local_definitions.sql',
|
||||||
'20260318_user_outlets_table.sql',
|
'20260318_user_outlets_table.sql',
|
||||||
|
|||||||
18
db/migrations/20260502_zzzz_default_outlet_guard.sql
Normal file
18
db/migrations/20260502_zzzz_default_outlet_guard.sql
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
-- Ensure the default outlet exists for installs created from complete_schema.sql snapshots.
|
||||||
|
-- Fresh installs can otherwise miss outlet ID 1 if the outlet seed migration was marked as already executed.
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `outlets` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(255) NOT NULL,
|
||||||
|
`address` text DEFAULT NULL,
|
||||||
|
`phone` varchar(50) DEFAULT NULL,
|
||||||
|
`status` enum('active','inactive') DEFAULT 'active',
|
||||||
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
INSERT INTO `outlets` (`id`, `name`, `address`, `phone`, `status`, `created_at`)
|
||||||
|
SELECT 1, 'Main Outlet', 'Head Office', '', 'active', NOW()
|
||||||
|
WHERE NOT EXISTS (
|
||||||
|
SELECT 1 FROM `outlets` WHERE `id` = 1
|
||||||
|
);
|
||||||
@ -103,6 +103,16 @@ function isLegacyNumberedSnapshotMigrationFile(string $filePath): bool
|
|||||||
return preg_match('/^\d{1,7}_/', basename($filePath)) === 1;
|
return preg_match('/^\d{1,7}_/', basename($filePath)) === 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isInstallBaselineExcludedMigrationFile(string $filePath): bool
|
||||||
|
{
|
||||||
|
// These migrations include required default data that is not embedded in complete_schema.sql.
|
||||||
|
// Keep them out of the install baseline so fresh installs still execute them.
|
||||||
|
return in_array(basename($filePath), [
|
||||||
|
'20260318_create_outlets_table.sql',
|
||||||
|
'20260502_zzzz_default_outlet_guard.sql',
|
||||||
|
], true);
|
||||||
|
}
|
||||||
|
|
||||||
function fetchInstallBaselineMigrationNames(): array
|
function fetchInstallBaselineMigrationNames(): array
|
||||||
{
|
{
|
||||||
$files = array_merge(
|
$files = array_merge(
|
||||||
@ -111,7 +121,8 @@ function fetchInstallBaselineMigrationNames(): array
|
|||||||
);
|
);
|
||||||
|
|
||||||
$files = array_values(array_filter($files, static function (string $filePath): bool {
|
$files = array_values(array_filter($files, static function (string $filePath): bool {
|
||||||
return !isLegacyNumberedSnapshotMigrationFile($filePath);
|
return !isLegacyNumberedSnapshotMigrationFile($filePath)
|
||||||
|
&& !isInstallBaselineExcludedMigrationFile($filePath);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
usort($files, static function (string $left, string $right): int {
|
usort($files, static function (string $left, string $right): int {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user