我需要从我们的数据库中获取脚本,以便于使用虚拟数据填充数据库以进行测试。
数据库在多个文件上进行分区,并使用分区方案对数据库进行分区。生成脚本生成的脚本当前生成对分区方案的调用。
如何获取完整数据库(有或没有分区方案)创建脚本以在我的开发数据库上运行?
答案 0 :(得分:0)
我根本不明白你的问题,所以我会给你两个答案。
经过互联网和论坛搜索后,我想我找到了一个解决方案,只需要一行代码。
我发现了一个很好的宝石,可以完全按照您的要求进行,但对于单个模型,对象和对象的数组。此外,此gem仅适用于Rails 3.2及更早版本。我talked with author,他不想再支持这个宝石了。所以我自己发现了如何支持Rails 4.0,现在我正在维护这个宝石。
<小时/> 有了这个宝石,您可以轻松地执行以下操作。 ( values 中的示例只是一个笑话,在对象中使用它时会得到正确的值)。
对象:
object.to_sql_insert
# INSERT INTO modelName (field1, field2) VALUES ('Wow, amaze gem', 'much doge')
对于对象数组:
array_of_objects.to_sql_insert
# INSERT INTO modelName (field1, field2) VALUES ('Awesome doge', "im *Censored* cop")
# INSERT INTO modelName (field1, field2) VALUES ('much profit', 'much doge')
# (...)
对于模特:
Model.all.to_sql_insert
# INSERT INTO modelName (field1, field2) VALUES ('Awesome doge', "im *Censored* cop")
# INSERT INTO modelName (field1, field2) VALUES ('much profit', 'much doge')
# (...)
只需看看Github of this project,您就会发现如何安装和使用这个美妙的宝石。
关注this answer,您只需使用mysqldump
转储所有数据库。
mysqldump [options] db_name [tbl_name ...]
将生成脚本文件,包括所选表所需的创建和插入。要导入转储,您只需执行以下操作:
mysql -u <user> -p dbname < mys.dmp
希望它有所帮助。