使用rails项目的现有数据库

时间:2013-07-26 10:20:05

标签: mysql ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我想在我的Ubuntu 12机器上运行ruby on rails项目。运行命令bundle install后,我使用了以下命令

   rake db:drop db:setup 

显示

-- create_table("art_clas", {:force=>true})
   -> 0.3222s
-- add_index("art_clas, ["art_id", "clas, {:name=>"index_art_attes_on_art_attribute", :unique=>true})
   -> 0.4328s
.....................................
.....................................

当我使用$ rake db:setup命令时,它会显示现有的数据库

franche_development already exists
franche_test already exists
 -- create_table("art_clas", {:force=>true})
       -> 0.3222s
    -- add_index("art_clas, ["art_id", "clas, {:name=>"index_art_attes_on_art_attribute", :unique=>true})
       -> 0.4328s
    .....................................

稍后当我运行项目时,它不会显示数据库表中的任何值(显示空白)。 之后我输入以下内容来显示数据库。但是此操作不会在rails项目中显示我现有的数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+
2 rows in set (0.23 sec)

执行rake db:drop不返回任何内容

 $ rake db:drop
 $

并在运行项目时显示

Mysql2::Error: Table 'franche_development.arts' doesn't exist: SELECT `arts`.* FROM `arts`  WHERE `arts`.`active` = 1 .....

如何设置和使用rails项目中的现有数据库和表。

是由于任何代码错误还是数据库设置?

1 个答案:

答案 0 :(得分:1)

所以你想在ruby中使用在mySQL中创建的现有数据库。您需要在config / database.yml中设置配置。

这是一个例子

  

发展:
   适配器:mysql2
   编码:utf8
   数据库:my_db_name
   用户名:root
   密码:my_password
   主持人:127.0.0.1
   港口:3306

另外你需要安装mysql gem。并且还更新关于mysql gem的Gemfile

默认情况下,在sqlite中而不是在mySQL中设置数据库,并存储在RAILS_ROOT / db / development.sqlite3中。这意味着如果您在rails中创建了表,则无法使用mysql查看表,您需要使用sqlite3才能与它们进行交互