diff --git a/docs/lib/snippets/setup/database.dart b/docs/lib/snippets/setup/database.dart
index 00d175a5..3779df69 100644
--- a/docs/lib/snippets/setup/database.dart
+++ b/docs/lib/snippets/setup/database.dart
@@ -1,21 +1,19 @@
+// #docregion after_generation
// #docregion before_generation
import 'package:drift/drift.dart';
// #enddocregion before_generation
+// #enddocregion after_generation
-// #docregion open
-// These imports are necessary to open the sqlite3 database
+// #docregion after_generation
+// These additional imports are necessary to open the sqlite3 database
import 'dart:io';
-
import 'package:drift/native.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
import 'package:sqlite3/sqlite3.dart';
import 'package:sqlite3_flutter_libs/sqlite3_flutter_libs.dart';
-// ... the TodoItems table definition stays the same
-// #enddocregion open
-
// #docregion before_generation
part 'database.g.dart';
@@ -27,25 +25,22 @@ class TodoItems extends Table {
IntColumn get category => integer().nullable()();
}
// #enddocregion table
-// #docregion open
@DriftDatabase(tables: [TodoItems])
class AppDatabase extends _$AppDatabase {
-// #enddocregion open
+// #enddocregion before_generation
+// #enddocregion after_generation
// After generating code, this class needs to define a `schemaVersion` getter
// and a constructor telling drift where the database should be stored.
// These are described in the getting started guide: https://drift.simonbinder.eu/getting-started/#open
-// #enddocregion before_generation
-// #docregion open
+// #docregion after_generation
AppDatabase() : super(_openConnection());
@override
int get schemaVersion => 1;
// #docregion before_generation
}
-// #enddocregion before_generation, open
-
-// #docregion open
+// #enddocregion before_generation
LazyDatabase _openConnection() {
// the LazyDatabase util lets us find the right location for the file async.
@@ -70,7 +65,7 @@ LazyDatabase _openConnection() {
return NativeDatabase.createInBackground(file);
});
}
-// #enddocregion open
+// #enddocregion after_generation
class WidgetsFlutterBinding {
static void ensureInitialized() {}
diff --git a/docs/pages/docs/setup.md b/docs/pages/docs/setup.md
index a1379099..d1660c91 100644
--- a/docs/pages/docs/setup.md
+++ b/docs/pages/docs/setup.md
@@ -81,7 +81,7 @@ to store todo items for a todo list app.
Everything there is to know about defining tables in Dart is described on the [Dart tables]({{'Dart API/tables.md' | pageUrl}}) page.
If you prefer using SQL to define your tables, drift supports that too! You can read all about the [SQL API]({{ 'SQL API/index.md' | pageUrl }}) here.
-For now, the contents of `database.dart` are:
+For now, populate the contents of `database.dart` with:
{% include "blocks/snippet" snippets = snippets name = 'before_generation' %}
@@ -97,10 +97,11 @@ After running either command, the `database.g.dart` file containing the generate
class will have been generated.
You will now see errors related to missing overrides and a missing constructor. The constructor
is responsible for telling drift how to open the database. The `schemaVersion` getter is relevant
-for migrations after changing the database, we can leave it at `1` for now. The database class
-now looks like this:
-
-{% include "blocks/snippet" snippets = snippets name = 'open' %}
+for migrations after changing the database, we can leave it at `1` for now. Update `database.dart`
+so it now looks like this:
+
+
+{% include "blocks/snippet" snippets = snippets name = 'after_generation' %}
The Android-specific workarounds are necessary because sqlite3 attempts to use `/tmp` to store
private data on unix-like systems, which is forbidden on Android. We also use this opportunity