OperationalError: (OperationalError) не удается открыть файл базы данных Нет Нет - PullRequest
21 голосов
/ 05 сентября 2011

Попытка отформатировать базу данных с использованием SQLAlchemy, но когда я запускаю create_all для метаданных, я получаю вышеуказанную ошибку.Я создал движок, используя следующий путь для пользователя Tyre77:

engine = create_engine('sqlite:////tyre77/OmniCloud/database.db')

Я прошел и по этому пути есть файл database.db, но, возможно, я его набрал неправильно?

Ответы [ 3 ]

36 голосов
/ 05 сентября 2011

Вы упоминаете, что это путь к пользователю tyre77 в OS X, поэтому не должно быть sqlite:////Users/tyre77/OmniCloud/database.db?

Кроме того, три слеша для относительных путей, четыре для абсолютных путей.

3 голосов
/ 10 февраля 2017

У меня была такая же проблема в windows 8.1. На основании документации sqlalchemy:

sqlite:////db_absolute_path

sqlite:///db_relative_path

(обратите внимание, что вторая строка выше имеет только 3 косых черты) В моем случае предоставление относительного пути помогло.

1 голос
/ 05 сентября 2011

Прочитав документы по sqlite urls здесь , я решил, что у вас есть правильное количество слешей. Очевидно, он использует тот же синтаксический анализатор для извлечения пути, что и механизмы удаленного соединения, поэтому «имя сервера», которое будет находиться между второй и третьей косой чертой, оставлено пустым.

Если вы хотите указать абсолютный путь, вы идете по нему правильным путем. Убедитесь, что вы указываете абсолютный путь. Три косые черты могут указывать относительный путь, но вам необходимо знать текущий рабочий каталог вашего приложения, который может сломаться при задержке приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...