对于背景,我正在尝试将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)。

07-28 03:22
查看更多