Почему появляется ошибка о том, что таблицы нет?

При попытке получить данные с бд с таблицы lesson появляется ошибка, что такой таблицы нет.
База данных есть, таблица тоже.
Код получения

Future<List<Lesson>> getLessons() async {
    final db = await database;
    var res = await db.query("lessons");
    List<Lesson> list =  res.isNotEmpty ? res.map((c) => Lesson.fromMap(c)).toList() : [];
    print(list);
    return list;
  }


Код базы

initDB() async {
    
    Directory documentsDirectory = await getApplicationDocumentsDirectory();
    print(documentsDirectory.path);
    String path = join(documentsDirectory.path, "TestDB.db");
    await deleteDatabase(path);
    return await openDatabase(path, version: 1, onOpen: (Database db) {}, 
      onCreate: (Database db, int version) async {
      await db.execute("CREATE TABLE homeworks("
          "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,"
          "lesson INTEGER,"
          "date INTEGER,"
          "homework TEXT,"
          "isDone INTEGER"
          ");"
          "CREATE TABLE lessons ("
          "id INTEGER PRIMARY KEY,"
          "lesson TEXT)");
    });
  }

  • Вопрос задан
  • 36 просмотров
Решения вопроса 1
@imnotwhoexpect Автор вопроса
Оказывается db.execute() может выполнять только одну команду.
Для каждой таблицы надо снова вызывать db.execute()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы