ss-panel-rails icon indicating copy to clipboard operation
ss-panel-rails copied to clipboard

为什么不用db:migrate的方式?

Open roylez opened this issue 8 years ago • 9 comments

我不大理解,这sql里面写死了数据库的名字

roylez avatar Aug 26 '16 06:08 roylez

@roylez 如果需要修改数据库的名字的话,使用db:migrate同样需要手动去db目录下修改相关文件,如果你需要修改数据库名称,在sql文件里面改两行就行了,这不是更方便吗?

timlentse avatar Aug 26 '16 06:08 timlentse

数据库的名字只存在database.yml里面,对于production的环境,我其实更加只是用环境变量。所以更改数据库名称什么的,只需要更改环境变量就好。rails自己会加载DATABASE_URL里定义的数据库。

所以migration里面定义数据库schema,可以更贴合rake db:migrate的流程(对于我这样在dokku上部署的更方便)。migration从你的sql也很容易改过去,我已经都改过了,大体就是底下这个样子。

class AddSiteConfigTable < ActiveRecord::Migration
  def down
    drop_table :site_configs
  end

  def up
    execute <<-EOS
      CREATE TABLE `site_configs` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `key` varchar(128) NOT NULL,
        `value` text NOT NULL,
        `updated_at` datetime NOT NULL,
        `created_at` datetime NOT NULL,
        PRIMARY KEY (`id`)

      ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    EOS
  end
end

roylez avatar Aug 26 '16 07:08 roylez

@roylez 你这是一个非常好的建议,改数据库只需要修改一处就可以做到。我当初偷懒了,直接使用导出sql语句就草草了事。

timlentse avatar Aug 26 '16 08:08 timlentse

@timlentse 楼主 我按照你一键安装包的 形式安装了 但是做完 访问ip:3000 显示错误 。 我很疑惑。还有就是database.yml 文件应该放到哪里

zhang2460061 avatar Aug 27 '16 14:08 zhang2460061

@zhang2460061 database.yml 放在config目录下面,还有你的保存信息是什么?能截个图吗?

timlentse avatar Aug 28 '16 07:08 timlentse

@timlentse 作者你好,我也遇到了上述问题。 请问这个config的具体路径是什么,是在根目录下吗? 我直接vi /config/database.yml 编辑无法保存,提示的是无法打开文件和读写。 我也试过放到其他目录,然后也是不能访问。

ianiceice avatar Aug 29 '16 01:08 ianiceice

@ianiceice 不是/config/这个目录下,是这个repo下面的config目录。

timlentse avatar Aug 29 '16 06:08 timlentse

@timlentse 能不能教一下具体怎么做,repo命令什么的也没接触过。

ianiceice avatar Aug 30 '16 11:08 ianiceice

@ianiceice repo指的是这个项目,就是你git clone 下来的文件夹,这个文件夹下面有个config文件夹。

timlentse avatar Sep 02 '16 03:09 timlentse