Files
myeasycms-v2/tooling/scripts/src/migrations.mjs
Giancarlo Buomprisco 131b1061e6 Enforce RLS when user opted in to MFA. (#188)
* Allow Super Admin to view tables using RLS
* Replace previous usages of the Admin client using the authed client using the new RLS
* Enforce MFA for Super Admin users
* Enforce RLS when user opted in to MFA.
* Add Super Admin Access Policies and Update Database Types
* Consolidate super admin logic into a single function that uses the RPC is_super_admin
* Added Super Admin E2E tests
* Fixes and improvements
* Bump version to 2.5.0
2025-03-02 11:21:01 +08:00

49 lines
1.6 KiB
JavaScript

import { execSync } from 'node:child_process';
export function checkPendingMigrations() {
try {
console.info('\x1b[34m%s\x1b[0m', 'Checking for pending migrations...');
const output = execSync('pnpm --filter web supabase migration list', {
encoding: 'utf-8',
stdio: 'pipe',
});
const lines = output.split('\n');
// Skip header lines
const migrationLines = lines.slice(4);
const pendingMigrations = migrationLines
.filter((line) => {
const [local, remote] = line.split('│').map((s) => s.trim());
return local !== '' && remote === '';
})
.map((line) => (line.split('│')[0] ?? '').trim());
if (pendingMigrations.length > 0) {
console.log(
'\x1b[33m%s\x1b[0m',
'⚠️ There are pending migrations that need to be applied:',
);
pendingMigrations.forEach((migration) => console.log(` - ${migration}`));
console.log(
'\nSome functionality may not work as expected until these migrations are applied.',
);
console.log(
'\nAfter testing the migrations in your local environment and ideally in a staging environment, please run "pnpm --filter web supabase db push" to apply them to your database. If you have any questions, please open a support ticket.',
);
} else {
console.log('\x1b[32m%s\x1b[0m', '✅ All migrations are up to date.');
}
} catch (error) {
console.log(
'\x1b[33m%s\x1b[0m',
"💡 Info: Project not yet linked to a remote Supabase project. Migration checks skipped - this is expected for new projects. Link your project when you're ready to sync with Supabase.\n",
);
}
}