我想在我的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项目中的现有数据库和表。
是由于任何代码错误还是数据库设置?
答案 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才能与它们进行交互