虽然这是个很小白的问题,但还是决定写下来,毕竟还是在坑里折腾了些时间。
问题描述
如题所诉,现有一份sql文件,需要导入了rails中,比如你新建好了model user ,但是对应的数据表是空的,
数据库用的是mysql, 要求导入sql文件后,进入rails console,查询User.all, 会出现导入的数据。
解决
拿到数据库的时候,直接Google,很快就可以看到各种解答,有些走rails console, 或者使用task来执行。
类似这样,运行sql文件:
ActiveRecord::Base.connection.execute(IO.read("your_sql_file.sql"))
我便沿着这个坑开始走,不过奇怪的是,运行时没报错,但进入rails console,执行 User.count, 得到的结果却是0,根本没有导入数据。
最后发现其实很简单,不走rails console的路线,直接通过mysql导入即可。
进入mysql:
mysql -u user_name -p
user_name是你的用户名,然后它会让你输入密码。如果想要免密码,比如你忘记了密码,可以这样:
mysql.server stop
mysql.server start --skip-grant-tables
然后进入mysql:
mysql
选择你的数据库:
use your_database_name;
导入:
source /path/to/your_sql_file.sql
OK!!
可以进入rails console检查一下你的数据是否已经导入到指定的数据库中。