Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
roylez opened this issue Aug 26, 2016 · 9 comments
Open

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

roylez opened this issue Aug 26, 2016 · 9 comments

Comments

@roylez
Copy link

roylez commented Aug 26, 2016

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

@timlentse
Copy link
Owner

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

@roylez
Copy link
Author

roylez commented Aug 26, 2016

数据库的名字只存在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

@timlentse
Copy link
Owner

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

@zhang2460061
Copy link

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

@timlentse
Copy link
Owner

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

@ianiceice
Copy link

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

@timlentse
Copy link
Owner

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

@ianiceice
Copy link

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

@timlentse
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants