2011-10-23 35 views
0

我不得不3.1.1应用程序手动创建我的rails sqlite3的一个数据库,使用mysql2sqlite工具从MySQL数据库转换,然后运行:的SQLite 3数据库没有被正确读取

sqlite3 development.sqlite3 < mysql2sqlite_dump.sql 

不管怎么说,在development.sqlite3文件存在,并且服务器启动正常,所有页面加载正常(没有关于丢失表或任何其他数据库的错误),但是数据没有被读取......就好像它不在那里一样。即使是运行Event.all,例如,在控制台给我:

Event Load (0.1ms) SELECT "events".* FROM "events" 
=> [] 

当实际上应该是几个事件。查看sqlite3文件,我可以看到所有的信息都在那里,但它只是没有被读取。如果有人要求,我会发布数据库文件的一部分。

我的问题是:为什么数据库没有正确读取,我该如何做到这一点?

谢谢。

+2

所以,如果你'sqlite3 development.sqlite3'那么你可以从表中选择,一切都在那里,对吧?您确定Rails正在使用您的'sql.sqlite3'文件而不是其他SQLite数据库文件吗? –

+0

在sqlite3控制台中运行'select * from events;'返回任何内容。我的'database.yml'文件指向'db/development.sqlite3'。 – bricker

+1

嗯。 'select * from sqlite_master'告诉你什么照亮? –

回答

0

那么,我似乎已经解决了这个问题。问题在于mysqldump(在mysql2sqlite脚本内部执行)正在删除,然后创建表(这是默认值),并且与模式文件冲突。因此,我根据架构文件创建了数据库,然后再次运行脚本,并添加了--no-create-info选项以用于mysqldump,以便它仅插入信息。

感谢大家的帮助!

相关问题