platform/packages/orm/angel_migration/example/main.dart
2024-10-12 18:45:27 -07:00

42 lines
1,010 B
Dart

/// These are straightforward migrations.
///
/// You will likely never have to actually write these yourself.
library protevus_migration.example.todo;
import 'package:protevus_migration/protevus_migration.dart';
class UserMigration implements Migration {
@override
void up(Schema schema) {
schema.create('users', (table) {
table
..serial('id').primaryKey()
..varChar('username', length: 32).unique()
..varChar('password')
..boolean('account_confirmed').defaultsTo(false);
});
}
@override
void down(Schema schema) {
schema.drop('users');
}
}
class TodoMigration implements Migration {
@override
void up(Schema schema) {
schema.create('todos', (table) {
table
..serial('id').primaryKey()
..integer('user_id').references('users', 'id').onDeleteCascade()
..varChar('text')
..boolean('completed').defaultsTo(false);
});
}
@override
void down(Schema schema) {
schema.drop('todos');
}
}