【问题标题】:How to copy data in development db to product db using sqlite如何使用 sqlite 将开发数据库中的数据复制到产品数据库
【发布时间】:2012-01-17 05:05:48
【问题描述】:

我(目前)在 Rails 上的开发和生产系统都使用 sqlite。我有一个 development.sqlite3 文件,我想将其复制到 production.sqlite3 以在生产环境中运行一些测试。

我试图通过 mv development.sqlite3 production.sqlite3 将开发数据库复制到生产环境,但这似乎不起作用。

关于如何最好地做到这一点的任何想法?

【问题讨论】:

    标签: ruby-on-rails database sqlite


    【解决方案1】:

    根据this question,下面的代码可以做到这一点。

    RAILS_ENV=production rake db:create db:schema:load
    

    这会清空当前的 production.sqlite3。创建数据库并加载结构后,您可以将 development.sqlite3 复制到 production.sqlite3 以复制数据。

    cp db/development.sqlite3 db/production.sqlite3
    

    【讨论】:

    • 我已经尝试过了,但它似乎不起作用。有没有办法测试以确保数据在 production.sqlite3 中,以及确保 rails 知道它在生产环境中的方法。
    • 我刚刚在 sqlite3 中运行 select * from posts; 并确认数据库中没有数据。难道我做错了什么?我从命令行运行了这些命令,它似乎可以使用您期望的输出。
    • 运行rails server production在生产中启动rails服务器,运行rails console -e production启动控制台。您在使用 sqlite3 的 production.sqlite3 中没有发现数据?如果你复制了 development.sqlite3,你应该得到完全相同的数据,不管 Rails 能看到什么。
    • 在 db:create 和 db:schema:load 之后是否再次复制文件?否则它实际上应该是空的,因为 db:schema:load 会清除当前的数据库。
    • 是的,我运行后忘记复制了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多