mirror of https://github.com/AMT-Cheif/drift.git
Migrate migration example to drift
This commit is contained in:
parent
dc5055f585
commit
cc99b1372a
|
@ -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';
|
||||||
|
|
|
@ -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;");
|
||||||
|
|
|
@ -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));
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
targets:
|
targets:
|
||||||
$default:
|
$default:
|
||||||
builders:
|
builders:
|
||||||
moor_generator:
|
drift_dev:
|
||||||
options:
|
options:
|
||||||
generate_connect_constructor: true
|
generate_connect_constructor: true
|
|
@ -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;
|
||||||
|
|
|
@ -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) ||
|
||||||
|
|
|
@ -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()();
|
||||||
|
|
|
@ -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)
|
||||||
|
);
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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(() {
|
||||||
|
|
Loading…
Reference in New Issue