对于背景,我正在尝试将sqlite3本地数据库迁移到Heroku上的postgresql数据库。
通过我的(Django)开发服务器在本地访问数据库没有问题。但是,当我尝试将数据库推送到Heroku时,它说无法打开文件。
heroku db:push sqlite://path/to/db --confirm my-app-name
我收到以下消息:
Loaded Taps v0.3.23
Warning: Data in the app 'my-app-name' will be overwritten and will not be recoverable.
Failed to connect to database:
Sequel::DatabaseConnectionError -> SQLite3::CantOpenException: could not open database: unable to open database file
我在Google上看到的大多数内容都与Tap早期版本中的一些错误有关。否则,我不确定该怎么做。
我已经尝试按照this question和其他有关权限的建议进行操作,但是我具有对该文件和包含文件夹的完全读写访问权限。我对权限不太熟悉-是否需要将数据库的所有权切换到另一个用户?
最佳答案
如果/ path / to / database是绝对路径,则需要执行以下操作:
heroku db:push sqlite:///path/to/db --confirm my-app-name
注意第三个斜杠。这也可能是一个权限问题,在这种情况下,您想要将所有者更改为当前用户,或者至少要授予数据库读取权限(644)。