Я получаю довольно странную синтаксическую ошибку в моем schema.sql
файле.
Ошибка выглядит следующим образом:
File "/ Users / user / Documents / GitProjects /FlaskApp/flaskr/db.py ", строка 88, в файле init_db_command init_db ()" /Users/user/Documents/GitProjects/FlaskApp/flaskr/db.py ", строка 80, в файле init_db db.executescript (f.read () .decode ("utf-8")) sqlite3.OperationalError: рядом с "create": синтаксическая ошибка
Моя схема выглядит так:
drop table if exists post;
drop table if exists post_user;
create table post_user (
user_id integer primary key autoincrement,
email text unique not null,
username text unique not null,
password text not null
);
create table post (
post_id integer primary key autoincrement,
author_id integer not null,
create timestamp not null default current_timestamp,
title text not null,
body text not null,
foreign key (author_id) references post_user (user_id)
);
И мой python выглядит так:
def init_db():
db = get_db()
with current_app.open_resource("schema.sql") as f:
db.executescript(f.read().decode("utf-8"))
И, наконец, каталог:
root
|--db.py
|--schema.sql
instance
|-- project.sqlite
Я использую flask и sqlite3. И мои шаги по устранению неполадок были следующие:
1) Удалите все, кроме первой строки (это работает)
2) Удалили все, кроме первых двух строк (это не так)
3) Удалите файл ./instance/project.sqlite
4) Используйте онлайновый валидатор. Это было особенно интересно, потому что выяснилось, что каждая отдельная команда работает. Но как только я связал два спина к спине, он сказал, что команды были недействительными.
5) Дважды проверил документацию sqlite об удалении таблиц
6) Даже зашел так далеко, что мой .vimrc
был установлен на utf-8
Я уверен, что пропустил что-то маленькое здесь, но, похоже, ничего не работает. Любая помощь будет оценена!