Migrate migration example to drift

This commit is contained in:
Simon Binder 2021-10-09 17:10:34 +02:00
parent dc5055f585
commit cc99b1372a
No known key found for this signature in database
GPG Key ID: 7891917E4147B8C0
17 changed files with 181 additions and 191 deletions

View File

@ -1,4 +1,4 @@
//@dart=2.9 // @dart=2.9
import 'package:drift_dev/src/cli/cli.dart' as cli; import 'package:drift_dev/src/cli/cli.dart' as cli;
Future main(List<String> args) { Future main(List<String> args) {

View File

@ -295,6 +295,9 @@ class _Moor2DriftDartRewriter extends GeneralizingAstVisitor<void> {
break; break;
case 'moor_generator': case 'moor_generator':
newPackage = 'drift_dev'; newPackage = 'drift_dev';
break;
default:
return;
} }
final driftImport = 'package:$newPackage/$path'; final driftImport = 'package:$newPackage/$path';

View File

@ -86,7 +86,7 @@ class GenerateUtilsCommand extends Command {
); );
} }
await _writeLibraryFile(outputDir, schema.keys, isNnbd); await _writeLibraryFile(outputDir, schema.keys, isNnbd, isForMoor);
print( print(
'Wrote ${schema.length + 1} files into ${p.relative(outputDir.path)}'); 'Wrote ${schema.length + 1} files into ${p.relative(outputDir.path)}');
} }
@ -150,17 +150,22 @@ class GenerateUtilsCommand extends Command {
generationOptions: GenerationOptions( generationOptions: GenerationOptions(
forSchema: version, forSchema: version,
nnbd: nnbd, nnbd: nnbd,
writeCompanions: dataClasses, writeCompanions: companions,
writeDataClasses: companions, writeDataClasses: dataClasses,
writeForMoorPackage: isForMoor, writeForMoorPackage: isForMoor,
), ),
); );
final file = File(p.join(output.path, _filenameForVersion(version))); final file = File(p.join(output.path, _filenameForVersion(version)));
writer.leaf() final leaf = writer.leaf()
..writeln(_prefix) ..writeln(_prefix)
..writeDartVersion(nnbd) ..writeDartVersion(nnbd);
..writeln("import 'package:moor/moor.dart';");
if (isForMoor) {
leaf.writeln("import 'package:moor/moor.dart';");
} else {
leaf.writeln("import 'package:drift/drift.dart';");
}
final db = Database( final db = Database(
declaredQueries: const [], declaredQueries: const [],
@ -172,13 +177,21 @@ class GenerateUtilsCommand extends Command {
return file.writeAsString(_dartfmt.format(writer.writeGenerated())); return file.writeAsString(_dartfmt.format(writer.writeGenerated()));
} }
Future<void> _writeLibraryFile( Future<void> _writeLibraryFile(Directory output, Iterable<int> versions,
Directory output, Iterable<int> versions, bool nnbd) { bool nnbd, bool useMoorImports) {
final buffer = StringBuffer() final buffer = StringBuffer()
..writeln(_prefix) ..writeln(_prefix)
..writeDartVersion(nnbd) ..writeDartVersion(nnbd);
if (useMoorImports) {
buffer
..writeln("import 'package:moor/moor.dart';") ..writeln("import 'package:moor/moor.dart';")
..writeln("import 'package:moor_generator/api/migrations.dart';");
} else {
buffer
..writeln("import 'package:drift/drift.dart';")
..writeln("import 'package:drift_dev/api/migrations.dart';"); ..writeln("import 'package:drift_dev/api/migrations.dart';");
}
for (final version in versions) { for (final version in versions) {
buffer.writeln("import '${_filenameForVersion(version)}' as v$version;"); buffer.writeln("import '${_filenameForVersion(version)}' as v$version;");

View File

@ -8,7 +8,10 @@ Future<MoorOptions> fromRootDir(String path) async {
MoorOptions readOptionsFromConfig(BuildConfig config) { MoorOptions readOptionsFromConfig(BuildConfig config) {
final options = config.buildTargets.values final options = config.buildTargets.values
.map((t) => t.builders['moor_generator:moor_generator']?.options) .map((t) {
return t.builders['moor_generator:moor_generator']?.options ??
t.builders['drift_dev:drift_dev']?.options;
})
.whereType<Map>() .whereType<Map>()
.map((json) => MoorOptions.fromJson(json)); .map((json) => MoorOptions.fromJson(json));

View File

@ -9,7 +9,7 @@ See `test/migration_test.dart` on how to use the generated verification code.
After adapting a schema and incrementing the `schemaVersion` in the database, run After adapting a schema and incrementing the `schemaVersion` in the database, run
``` ```
dart run moor_generator schema dump lib/database.dart moor_migrations/moor_schema_v2.json dart run drift_dev schema dump lib/database.dart moor_migrations/moor_schema_v2.json
``` ```
Replace `_v2` with the current `schemaVersion`. Replace `_v2` with the current `schemaVersion`.
@ -19,5 +19,5 @@ Replace `_v2` with the current `schemaVersion`.
Run Run
``` ```
dart run moor_generator schema generate moor_migrations/ test/generated/ dart run drift_dev schema generate moor_migrations/ test/generated/ --data-classes --companions
``` ```

View File

@ -1,6 +1,6 @@
targets: targets:
$default: $default:
builders: builders:
moor_generator: drift_dev:
options: options:
generate_connect_constructor: true generate_connect_constructor: true

View File

@ -1,10 +1,10 @@
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
import 'tables.dart'; import 'tables.dart';
part 'database.g.dart'; part 'database.g.dart';
@UseMoor(include: {'tables.moor'}) @DriftDatabase(include: {'tables.drift'})
class Database extends _$Database { class Database extends _$Database {
@override @override
int get schemaVersion => 4; int get schemaVersion => 4;

View File

@ -38,7 +38,7 @@ class User extends DataClass implements Insertable<User> {
factory User.fromJson(Map<String, dynamic> json, factory User.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return User( return User(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
name: serializer.fromJson<String>(json['name']), name: serializer.fromJson<String>(json['name']),
@ -46,7 +46,7 @@ class User extends DataClass implements Insertable<User> {
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'name': serializer.toJson<String>(name), 'name': serializer.toJson<String>(name),
@ -67,7 +67,7 @@ class User extends DataClass implements Insertable<User> {
} }
@override @override
int get hashCode => $mrjf($mrjc(id.hashCode, name.hashCode)); int get hashCode => Object.hash(id, name);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -224,7 +224,7 @@ class Group extends DataClass implements Insertable<Group> {
factory Group.fromJson(Map<String, dynamic> json, factory Group.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return Group( return Group(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
title: serializer.fromJson<String>(json['title']), title: serializer.fromJson<String>(json['title']),
@ -234,7 +234,7 @@ class Group extends DataClass implements Insertable<Group> {
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'title': serializer.toJson<String>(title), 'title': serializer.toJson<String>(title),
@ -261,8 +261,7 @@ class Group extends DataClass implements Insertable<Group> {
} }
@override @override
int get hashCode => $mrjf($mrjc(id.hashCode, int get hashCode => Object.hash(id, title, deleted, owner);
$mrjc(title.hashCode, $mrjc(deleted.hashCode, owner.hashCode))));
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||

View File

@ -1,4 +1,4 @@
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
class Users extends Table { class Users extends Table {
IntColumn get id => integer().autoIncrement()(); IntColumn get id => integer().autoIncrement()();

View File

@ -0,0 +1,11 @@
import 'tables.dart';
-- This table was added in schema version 3
CREATE TABLE "groups" (
id INTEGER NOT NULL,
title TEXT NOT NULL,
deleted BOOLEAN DEFAULT FALSE,
owner INTEGER NOT NULL REFERENCES users (id),
PRIMARY KEY (id)
);

View File

@ -6,10 +6,10 @@ environment:
sdk: '>=2.12.0 <3.0.0' sdk: '>=2.12.0 <3.0.0'
dependencies: dependencies:
moor: drift:
dev_dependencies: dev_dependencies:
moor_generator: drift_dev:
build_runner: ^2.0.0 build_runner: ^2.0.0
test: ^1.15.4 test: ^1.15.4
@ -18,9 +18,5 @@ dependency_overrides:
path: ../../drift path: ../../drift
drift_dev: drift_dev:
path: ../../drift_dev path: ../../drift_dev
moor:
path: ../../moor
moor_generator:
path: ../../moor_generator
sqlparser: sqlparser:
path: ../../sqlparser path: ../../sqlparser

View File

@ -1,7 +1,7 @@
// GENERATED CODE, DO NOT EDIT BY HAND. // GENERATED CODE, DO NOT EDIT BY HAND.
//@dart=2.12 //@dart=2.12
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
import 'package:moor_generator/api/migrations.dart'; import 'package:drift_dev/api/migrations.dart';
import 'schema_v1.dart' as v1; import 'schema_v1.dart' as v1;
import 'schema_v2.dart' as v2; import 'schema_v2.dart' as v2;
import 'schema_v3.dart' as v3; import 'schema_v3.dart' as v3;

View File

@ -1,6 +1,6 @@
// GENERATED CODE, DO NOT EDIT BY HAND. // GENERATED CODE, DO NOT EDIT BY HAND.
//@dart=2.12 //@dart=2.12
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
class UsersData extends DataClass implements Insertable<UsersData> { class UsersData extends DataClass implements Insertable<UsersData> {
final int id; final int id;
@ -28,14 +28,14 @@ class UsersData extends DataClass implements Insertable<UsersData> {
factory UsersData.fromJson(Map<String, dynamic> json, factory UsersData.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return UsersData( return UsersData(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
); );
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
}; };
@ -46,12 +46,14 @@ class UsersData extends DataClass implements Insertable<UsersData> {
); );
@override @override
String toString() { String toString() {
return (StringBuffer('UsersData(')..write('id: $id')..write(')')) return (StringBuffer('UsersData(')
..write('id: $id')
..write(')'))
.toString(); .toString();
} }
@override @override
int get hashCode => $mrjf(id.hashCode); int get hashCode => id.hashCode;
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || (other is UsersData && other.id == this.id); identical(this, other) || (other is UsersData && other.id == this.id);
@ -90,29 +92,28 @@ class UsersCompanion extends UpdateCompanion<UsersData> {
@override @override
String toString() { String toString() {
return (StringBuffer('UsersCompanion(')..write('id: $id')..write(')')) return (StringBuffer('UsersCompanion(')
..write('id: $id')
..write(')'))
.toString(); .toString();
} }
} }
class Users extends Table with TableInfo { class Users extends Table with TableInfo<Users, UsersData> {
final GeneratedDatabase _db; final GeneratedDatabase _db;
final String? _alias; final String? _alias;
Users(this._db, [this._alias]); Users(this._db, [this._alias]);
late final GeneratedIntColumn id = _constructId(); late final GeneratedColumn<int?> id = GeneratedColumn<int?>(
GeneratedIntColumn _constructId() { 'id', aliasedName, false,
return GeneratedIntColumn('id', $tableName, false, typeName: 'INTEGER',
hasAutoIncrement: true, declaredAsPrimaryKey: true); requiredDuringInsert: false,
} defaultConstraints: 'PRIMARY KEY AUTOINCREMENT');
@override @override
List<GeneratedColumn> get $columns => [id]; List<GeneratedColumn> get $columns => [id];
@override @override
Users get asDslTable => this; String get aliasedName => _alias ?? 'users';
@override @override
String get $tableName => _alias ?? 'users'; String get actualTableName => 'users';
@override
final String actualTableName = 'users';
@override @override
Set<GeneratedColumn> get $primaryKey => {id}; Set<GeneratedColumn> get $primaryKey => {id};
@override @override

View File

@ -1,6 +1,6 @@
// GENERATED CODE, DO NOT EDIT BY HAND. // GENERATED CODE, DO NOT EDIT BY HAND.
//@dart=2.12 //@dart=2.12
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
class UsersData extends DataClass implements Insertable<UsersData> { class UsersData extends DataClass implements Insertable<UsersData> {
final int id; final int id;
@ -33,7 +33,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
factory UsersData.fromJson(Map<String, dynamic> json, factory UsersData.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return UsersData( return UsersData(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
name: serializer.fromJson<String>(json['name']), name: serializer.fromJson<String>(json['name']),
@ -41,7 +41,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'name': serializer.toJson<String>(name), 'name': serializer.toJson<String>(name),
@ -62,7 +62,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
} }
@override @override
int get hashCode => $mrjf($mrjc(id.hashCode, name.hashCode)); int get hashCode => Object.hash(id, name);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -119,33 +119,24 @@ class UsersCompanion extends UpdateCompanion<UsersData> {
} }
} }
class Users extends Table with TableInfo { class Users extends Table with TableInfo<Users, UsersData> {
final GeneratedDatabase _db; final GeneratedDatabase _db;
final String? _alias; final String? _alias;
Users(this._db, [this._alias]); Users(this._db, [this._alias]);
late final GeneratedIntColumn id = _constructId(); late final GeneratedColumn<int?> id = GeneratedColumn<int?>(
GeneratedIntColumn _constructId() { 'id', aliasedName, false,
return GeneratedIntColumn('id', $tableName, false, typeName: 'INTEGER',
hasAutoIncrement: true, declaredAsPrimaryKey: true); requiredDuringInsert: false,
} defaultConstraints: 'PRIMARY KEY AUTOINCREMENT');
late final GeneratedColumn<String?> name = GeneratedColumn<String?>(
late final GeneratedTextColumn name = _constructName(); 'name', aliasedName, false,
GeneratedTextColumn _constructName() { typeName: 'TEXT', requiredDuringInsert: true);
return GeneratedTextColumn(
'name',
$tableName,
false,
);
}
@override @override
List<GeneratedColumn> get $columns => [id, name]; List<GeneratedColumn> get $columns => [id, name];
@override @override
Users get asDslTable => this; String get aliasedName => _alias ?? 'users';
@override @override
String get $tableName => _alias ?? 'users'; String get actualTableName => 'users';
@override
final String actualTableName = 'users';
@override @override
Set<GeneratedColumn> get $primaryKey => {id}; Set<GeneratedColumn> get $primaryKey => {id};
@override @override

View File

@ -1,6 +1,6 @@
// GENERATED CODE, DO NOT EDIT BY HAND. // GENERATED CODE, DO NOT EDIT BY HAND.
//@dart=2.12 //@dart=2.12
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
class UsersData extends DataClass implements Insertable<UsersData> { class UsersData extends DataClass implements Insertable<UsersData> {
final int id; final int id;
@ -33,7 +33,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
factory UsersData.fromJson(Map<String, dynamic> json, factory UsersData.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return UsersData( return UsersData(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
name: serializer.fromJson<String>(json['name']), name: serializer.fromJson<String>(json['name']),
@ -41,7 +41,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'name': serializer.toJson<String>(name), 'name': serializer.toJson<String>(name),
@ -62,7 +62,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
} }
@override @override
int get hashCode => $mrjf($mrjc(id.hashCode, name.hashCode)); int get hashCode => Object.hash(id, name);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -119,33 +119,24 @@ class UsersCompanion extends UpdateCompanion<UsersData> {
} }
} }
class Users extends Table with TableInfo { class Users extends Table with TableInfo<Users, UsersData> {
final GeneratedDatabase _db; final GeneratedDatabase _db;
final String? _alias; final String? _alias;
Users(this._db, [this._alias]); Users(this._db, [this._alias]);
late final GeneratedIntColumn id = _constructId(); late final GeneratedColumn<int?> id = GeneratedColumn<int?>(
GeneratedIntColumn _constructId() { 'id', aliasedName, false,
return GeneratedIntColumn('id', $tableName, false, typeName: 'INTEGER',
hasAutoIncrement: true, declaredAsPrimaryKey: true); requiredDuringInsert: false,
} defaultConstraints: 'PRIMARY KEY AUTOINCREMENT');
late final GeneratedColumn<String?> name = GeneratedColumn<String?>(
late final GeneratedTextColumn name = _constructName(); 'name', aliasedName, false,
GeneratedTextColumn _constructName() { typeName: 'TEXT', requiredDuringInsert: true);
return GeneratedTextColumn(
'name',
$tableName,
false,
);
}
@override @override
List<GeneratedColumn> get $columns => [id, name]; List<GeneratedColumn> get $columns => [id, name];
@override @override
Users get asDslTable => this; String get aliasedName => _alias ?? 'users';
@override @override
String get $tableName => _alias ?? 'users'; String get actualTableName => 'users';
@override
final String actualTableName = 'users';
@override @override
Set<GeneratedColumn> get $primaryKey => {id}; Set<GeneratedColumn> get $primaryKey => {id};
@override @override
@ -212,7 +203,7 @@ class GroupsData extends DataClass implements Insertable<GroupsData> {
factory GroupsData.fromJson(Map<String, dynamic> json, factory GroupsData.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return GroupsData( return GroupsData(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
title: serializer.fromJson<String>(json['title']), title: serializer.fromJson<String>(json['title']),
@ -222,7 +213,7 @@ class GroupsData extends DataClass implements Insertable<GroupsData> {
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'title': serializer.toJson<String>(title), 'title': serializer.toJson<String>(title),
@ -250,8 +241,7 @@ class GroupsData extends DataClass implements Insertable<GroupsData> {
} }
@override @override
int get hashCode => $mrjf($mrjc(id.hashCode, int get hashCode => Object.hash(id, title, deleted, owner);
$mrjc(title.hashCode, $mrjc(deleted.hashCode, owner.hashCode))));
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -337,43 +327,37 @@ class GroupsCompanion extends UpdateCompanion<GroupsData> {
} }
} }
class Groups extends Table with TableInfo { class Groups extends Table with TableInfo<Groups, GroupsData> {
final GeneratedDatabase _db; final GeneratedDatabase _db;
final String? _alias; final String? _alias;
Groups(this._db, [this._alias]); Groups(this._db, [this._alias]);
late final GeneratedIntColumn id = _constructId(); late final GeneratedColumn<int?> id = GeneratedColumn<int?>(
GeneratedIntColumn _constructId() { 'id', aliasedName, false,
return GeneratedIntColumn('id', $tableName, false, typeName: 'INTEGER',
requiredDuringInsert: false,
$customConstraints: 'NOT NULL'); $customConstraints: 'NOT NULL');
} late final GeneratedColumn<String?> title = GeneratedColumn<String?>(
'title', aliasedName, false,
late final GeneratedTextColumn title = _constructTitle(); typeName: 'TEXT',
GeneratedTextColumn _constructTitle() { requiredDuringInsert: true,
return GeneratedTextColumn('title', $tableName, false,
$customConstraints: 'NOT NULL'); $customConstraints: 'NOT NULL');
} late final GeneratedColumn<bool?> deleted = GeneratedColumn<bool?>(
'deleted', aliasedName, true,
late final GeneratedBoolColumn deleted = _constructDeleted(); typeName: 'INTEGER',
GeneratedBoolColumn _constructDeleted() { requiredDuringInsert: false,
return GeneratedBoolColumn('deleted', $tableName, true,
$customConstraints: 'DEFAULT FALSE', $customConstraints: 'DEFAULT FALSE',
defaultValue: const CustomExpression<bool>('FALSE')); defaultValue: const CustomExpression<bool>('FALSE'));
} late final GeneratedColumn<int?> owner = GeneratedColumn<int?>(
'owner', aliasedName, false,
late final GeneratedIntColumn owner = _constructOwner(); typeName: 'INTEGER',
GeneratedIntColumn _constructOwner() { requiredDuringInsert: true,
return GeneratedIntColumn('owner', $tableName, false,
$customConstraints: 'NOT NULL REFERENCES users (id)'); $customConstraints: 'NOT NULL REFERENCES users (id)');
}
@override @override
List<GeneratedColumn> get $columns => [id, title, deleted, owner]; List<GeneratedColumn> get $columns => [id, title, deleted, owner];
@override @override
Groups get asDslTable => this; String get aliasedName => _alias ?? 'groups';
@override @override
String get $tableName => _alias ?? 'groups'; String get actualTableName => 'groups';
@override
final String actualTableName = 'groups';
@override @override
Set<GeneratedColumn> get $primaryKey => {id}; Set<GeneratedColumn> get $primaryKey => {id};
@override @override

View File

@ -1,6 +1,6 @@
// GENERATED CODE, DO NOT EDIT BY HAND. // GENERATED CODE, DO NOT EDIT BY HAND.
//@dart=2.12 //@dart=2.12
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
class UsersData extends DataClass implements Insertable<UsersData> { class UsersData extends DataClass implements Insertable<UsersData> {
final int id; final int id;
@ -33,7 +33,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
factory UsersData.fromJson(Map<String, dynamic> json, factory UsersData.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return UsersData( return UsersData(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
name: serializer.fromJson<String>(json['name']), name: serializer.fromJson<String>(json['name']),
@ -41,7 +41,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'name': serializer.toJson<String>(name), 'name': serializer.toJson<String>(name),
@ -62,7 +62,7 @@ class UsersData extends DataClass implements Insertable<UsersData> {
} }
@override @override
int get hashCode => $mrjf($mrjc(id.hashCode, name.hashCode)); int get hashCode => Object.hash(id, name);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -119,30 +119,26 @@ class UsersCompanion extends UpdateCompanion<UsersData> {
} }
} }
class Users extends Table with TableInfo { class Users extends Table with TableInfo<Users, UsersData> {
final GeneratedDatabase _db; final GeneratedDatabase _db;
final String? _alias; final String? _alias;
Users(this._db, [this._alias]); Users(this._db, [this._alias]);
late final GeneratedIntColumn id = _constructId(); late final GeneratedColumn<int?> id = GeneratedColumn<int?>(
GeneratedIntColumn _constructId() { 'id', aliasedName, false,
return GeneratedIntColumn('id', $tableName, false, typeName: 'INTEGER',
hasAutoIncrement: true, declaredAsPrimaryKey: true); requiredDuringInsert: false,
} defaultConstraints: 'PRIMARY KEY AUTOINCREMENT');
late final GeneratedColumn<String?> name = GeneratedColumn<String?>(
late final GeneratedTextColumn name = _constructName(); 'name', aliasedName, false,
GeneratedTextColumn _constructName() { typeName: 'TEXT',
return GeneratedTextColumn('name', $tableName, false, requiredDuringInsert: false,
defaultValue: const Constant('name')); defaultValue: const Constant('name'));
}
@override @override
List<GeneratedColumn> get $columns => [id, name]; List<GeneratedColumn> get $columns => [id, name];
@override @override
Users get asDslTable => this; String get aliasedName => _alias ?? 'users';
@override @override
String get $tableName => _alias ?? 'users'; String get actualTableName => 'users';
@override
final String actualTableName = 'users';
@override @override
Set<GeneratedColumn> get $primaryKey => {id}; Set<GeneratedColumn> get $primaryKey => {id};
@override @override
@ -209,7 +205,7 @@ class GroupsData extends DataClass implements Insertable<GroupsData> {
factory GroupsData.fromJson(Map<String, dynamic> json, factory GroupsData.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) { {ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return GroupsData( return GroupsData(
id: serializer.fromJson<int>(json['id']), id: serializer.fromJson<int>(json['id']),
title: serializer.fromJson<String>(json['title']), title: serializer.fromJson<String>(json['title']),
@ -219,7 +215,7 @@ class GroupsData extends DataClass implements Insertable<GroupsData> {
} }
@override @override
Map<String, dynamic> toJson({ValueSerializer? serializer}) { Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= moorRuntimeOptions.defaultSerializer; serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{ return <String, dynamic>{
'id': serializer.toJson<int>(id), 'id': serializer.toJson<int>(id),
'title': serializer.toJson<String>(title), 'title': serializer.toJson<String>(title),
@ -247,8 +243,7 @@ class GroupsData extends DataClass implements Insertable<GroupsData> {
} }
@override @override
int get hashCode => $mrjf($mrjc(id.hashCode, int get hashCode => Object.hash(id, title, deleted, owner);
$mrjc(title.hashCode, $mrjc(deleted.hashCode, owner.hashCode))));
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
identical(this, other) || identical(this, other) ||
@ -334,43 +329,37 @@ class GroupsCompanion extends UpdateCompanion<GroupsData> {
} }
} }
class Groups extends Table with TableInfo { class Groups extends Table with TableInfo<Groups, GroupsData> {
final GeneratedDatabase _db; final GeneratedDatabase _db;
final String? _alias; final String? _alias;
Groups(this._db, [this._alias]); Groups(this._db, [this._alias]);
late final GeneratedIntColumn id = _constructId(); late final GeneratedColumn<int?> id = GeneratedColumn<int?>(
GeneratedIntColumn _constructId() { 'id', aliasedName, false,
return GeneratedIntColumn('id', $tableName, false, typeName: 'INTEGER',
requiredDuringInsert: false,
$customConstraints: 'NOT NULL'); $customConstraints: 'NOT NULL');
} late final GeneratedColumn<String?> title = GeneratedColumn<String?>(
'title', aliasedName, false,
late final GeneratedTextColumn title = _constructTitle(); typeName: 'TEXT',
GeneratedTextColumn _constructTitle() { requiredDuringInsert: true,
return GeneratedTextColumn('title', $tableName, false,
$customConstraints: 'NOT NULL'); $customConstraints: 'NOT NULL');
} late final GeneratedColumn<bool?> deleted = GeneratedColumn<bool?>(
'deleted', aliasedName, true,
late final GeneratedBoolColumn deleted = _constructDeleted(); typeName: 'INTEGER',
GeneratedBoolColumn _constructDeleted() { requiredDuringInsert: false,
return GeneratedBoolColumn('deleted', $tableName, true,
$customConstraints: 'DEFAULT FALSE', $customConstraints: 'DEFAULT FALSE',
defaultValue: const CustomExpression<bool>('FALSE')); defaultValue: const CustomExpression<bool>('FALSE'));
} late final GeneratedColumn<int?> owner = GeneratedColumn<int?>(
'owner', aliasedName, false,
late final GeneratedIntColumn owner = _constructOwner(); typeName: 'INTEGER',
GeneratedIntColumn _constructOwner() { requiredDuringInsert: true,
return GeneratedIntColumn('owner', $tableName, false,
$customConstraints: 'NOT NULL REFERENCES users (id)'); $customConstraints: 'NOT NULL REFERENCES users (id)');
}
@override @override
List<GeneratedColumn> get $columns => [id, title, deleted, owner]; List<GeneratedColumn> get $columns => [id, title, deleted, owner];
@override @override
Groups get asDslTable => this; String get aliasedName => _alias ?? 'groups';
@override @override
String get $tableName => _alias ?? 'groups'; String get actualTableName => 'groups';
@override
final String actualTableName = 'groups';
@override @override
Set<GeneratedColumn> get $primaryKey => {id}; Set<GeneratedColumn> get $primaryKey => {id};
@override @override

View File

@ -1,7 +1,7 @@
import 'package:migrations_example/database.dart'; import 'package:migrations_example/database.dart';
import 'package:moor/moor.dart'; import 'package:drift/drift.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:moor_generator/api/migrations.dart'; import 'package:drift_dev/api/migrations.dart';
// Import the generated schema helper to instantiate databases at old versions. // Import the generated schema helper to instantiate databases at old versions.
import 'generated/schema.dart'; import 'generated/schema.dart';
@ -10,7 +10,7 @@ import 'generated/schema_v1.dart' as v1;
import 'generated/schema_v2.dart' as v2; import 'generated/schema_v2.dart' as v2;
void main() { void main() {
moorRuntimeOptions.dontWarnAboutMultipleDatabases = true; driftRuntimeOptions.dontWarnAboutMultipleDatabases = true;
late SchemaVerifier verifier; late SchemaVerifier verifier;
setUpAll(() { setUpAll(() {