Я пытаюсь вставить данные в базу данных sqlite приложения, которое я создаю. Я получаю сообщение об ошибке DatabaseException, которое означает, что столбец в созданной таблице не существует, но я не могу расшифровать, что я делаю неправильно.
Модель данных:
class User {
int id;
String token;
User({
this.id,
this.token,
});
factory User.fromJson(Map<String, dynamic> data) => new User(
id: data["id"],
token: data["token"],
);
Map<String, dynamic> toJson() => {
"id": id,
"token": token,
};
}
Файл базы данных:
class UserDb {
UserDb._();
static final UserDb db = UserDb._();
Database _database;
Future<Database> get database async {
if (_database != null) {
return _database;
}
_database = await initDB();
return _database;
}
initDB() async {
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, "TestDB.db");
return await openDatabase(path, version: 1, onOpen: (db) {},
onCreate: (Database db, int version) async {
await db.execute("CREATE TABLE User (id INTEGER PRIMARY KEY, token TEXT)");
});
}
newClient(User user) async {
final db = await database;
var table = await db.rawQuery("SELECT MAX(id)+1 as id FROM User");
int id = table.first["id"];
var raw = await db.rawInsert(
"INSERT INTO User (id, token)"
" VALUES (?,?)",
[id, user.token]);
return raw;
}
}
Ошибка:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: DatabaseException(table User has no column named token (code 1): , while compiling: INSERT INTO User (id, token) VALUES (?,?)) sql 'INSERT INTO User (id, token) VALUES (?,?)' args [50000001, 5e7aa383bdd9693090ce2116]}