我们有一个iOS应用程序,它使用sqlite文件在本地存储数据。我们在heroku上有一个Rails应用程序,我们想发布sqlite文件,处理数据,并将记录插入我们的PG数据库。
Heroku根本不允许sqlite,我们无法安装sqlite3 gem。我们只想读取sqlite文件,而不需要在heroku使用sqlite作为db。
有没有办法在heroku上读取sqlite文件?
答案 0 :(得分:0)
我看到三种可能性:
1)您可以将sqlite3数据库转储到文件中,然后将内容导入Heroku的PostgreSQL数据库。您可以按照here的说明转储它。要导入,您可以编写rake任务或运行程序以在命令行执行此任务。您甚至可以使用db / seeds.rb来执行此任务。
2)您可以将sqlite3数据库转储到文件中,并尝试直接从该文件中导入PostgreSQL数据。我从来没有尝试过,你可能会发现一些问题。从一个数据库移动到另一个数据库时,输出格式有时会有所不同。数据库很少“100%-pure-SQL兼容”。
重要:在这两种情况下,您都会在开发环境中转储 ,然后将结果推送到Heroku。
3)您可以编写一个程序来“理解”sqlite数据库的格式。这意味着重写sqlite,你必须检查你是否真的想让自己陷入这么多麻烦。即使您认为这项任务值得花时间和精力,也可以考虑Heroku所说的here关于在文件系统中存储文件的内容。这是重要的信息:
SQLite runs in memory, and backs up its data store in files on disk.
While this strategy works well for development, Heroku’s Cedar stack has
an ephemeral filesystem. You can write to it, and you can read from it,
but the contents will be cleared periodically. If you were to use SQLite
on Heroku, you would lose your entire database at least once every
24 hours.
我还建议你看一下这篇文章here。它可能会帮助您下次节省一些时间和精力。
我希望这会有所帮助。