ee855a3502
Mirror to GitHub / mirror (push) Successful in 25s
Test and Lint / backend-test (push) Successful in 1m29s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m0s
Version and Release / version-bump (push) Successful in 40s
Version and Release / trigger-drone (push) Successful in 3s
- Added DATABASE_CLIENT=pg to docker-compose.dev.yml for PostgreSQL connection - Fixed migration 032 to check if tables exist before creating - Removed language-specific email template columns (use standard columns) - Added conditional checks for app_settings and email_templates inserts - Created helper scripts for migration state management - Added .env.dev with PostgreSQL configuration for development 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
61 lines
2.0 KiB
JavaScript
61 lines
2.0 KiB
JavaScript
#!/usr/bin/env node
|
||
|
||
/**
|
||
* Fix migration state by marking migrations as applied if their tables already exist
|
||
*/
|
||
|
||
const { db } = require('../src/database/db');
|
||
|
||
async function fixMigrationState() {
|
||
try {
|
||
console.log('Checking migration state...');
|
||
|
||
// Ensure migrations table exists
|
||
const hasMigrationsTable = await db.schema.hasTable('migrations');
|
||
if (!hasMigrationsTable) {
|
||
await db.schema.createTable('migrations', (table) => {
|
||
table.increments('id').primary();
|
||
table.string('filename').unique().notNullable();
|
||
table.timestamp('applied_at').defaultTo(db.fn.now());
|
||
});
|
||
console.log('Created migrations tracking table');
|
||
}
|
||
|
||
// Check for specific tables and mark their migrations as applied
|
||
const tableChecks = [
|
||
{ table: 'restore_runs', migration: '032_add_restore_runs_table.js' },
|
||
{ table: 'restore_file_operations', migration: '032_add_restore_runs_table.js' },
|
||
{ table: 'restore_validation_results', migration: '032_add_restore_runs_table.js' },
|
||
{ table: 'gallery_feedback', migration: '033_add_gallery_feedback.js' },
|
||
{ table: 'feedback_photos', migration: '033_add_gallery_feedback.js' },
|
||
];
|
||
|
||
for (const check of tableChecks) {
|
||
const tableExists = await db.schema.hasTable(check.table);
|
||
if (tableExists) {
|
||
const migrationApplied = await db('migrations')
|
||
.where('filename', check.migration)
|
||
.first();
|
||
|
||
if (!migrationApplied) {
|
||
await db('migrations').insert({
|
||
filename: check.migration,
|
||
applied_at: new Date()
|
||
});
|
||
console.log(`✅ Marked ${check.migration} as applied (table ${check.table} exists)`);
|
||
} else {
|
||
console.log(`ℹ️ ${check.migration} already marked as applied`);
|
||
}
|
||
}
|
||
}
|
||
|
||
console.log('\nMigration state fixed successfully!');
|
||
} catch (error) {
|
||
console.error('Error fixing migration state:', error.message);
|
||
process.exit(1);
|
||
} finally {
|
||
await db.destroy();
|
||
}
|
||
}
|
||
|
||
fixMigrationState(); |