将sql文件导入rails数据库中

虽然这是个很小白的问题,但还是决定写下来,毕竟还是在坑里折腾了些时间。

问题描述

如题所诉,现有一份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检查一下你的数据是否已经导入到指定的数据库中。

参考

Import SQL file into Rails database