bun run buildbun linkmkdir ../test-migrations
cd ../test-migrations
bun init -y
bun add pg
bun link @satoru/sql-migrationsCrie .env:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=test_db
DB_USER=postgres
DB_PASSWORD=postgres
MIGRATIONS_DIR=migrations# Criar migration
bun migrate create create_users_table
# Editar o arquivo SQL em migrations/
# Executar
bun migrate up
# Ver status
bun migrate status
# Reverter
bun migrate down
# Reset
bun migrate resetCrie test.ts:
import { createMigrationRunner, DatabasePool } from '@andreunix/sql-migrations';
import * as dotenv from 'dotenv';
dotenv.config();
async function main() {
const pool = DatabasePool.create();
const runner = createMigrationRunner(pool);
console.log('Executando migrations...');
await runner.up();
console.log('Status:');
const status = await runner.status();
status.forEach(s => {
console.log(`${s.executed ? '✅' : '⏳'} ${s.migration.fullName}`);
});
await pool.end();
}
main();Execute:
bun test.ts-- Ver tabela de controle
SELECT * FROM migrations;
-- Ver estrutura criada
\dt
\d usersQuando terminar os testes:
cd ../andreunix-db
bun unlink- Adicione
DEBUG=trueno.envpara ver logs de conexão - Use
bun migrate statuspara verificar estado - Use
bun migrate resetpara limpar tudo - Verifique logs de erro no console
# No projeto andreunix-db
bun run build
bun link
# Criar projeto teste
mkdir ../test-migrations && cd ../test-migrations
bun init -y
bun add pg dotenv
bun link @andreunix/sql-migrations
# Criar .env
echo "DB_HOST=localhost
DB_PORT=5432
DB_NAME=test_db
DB_USER=postgres
DB_PASSWORD=postgres" > .env
# Usar
bun migrate create create_users_table
# Editar migrations/YYYY_MM_DD_HHMMSS_create_users_table.sql
bun migrate up
bun migrate status