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 项目中的现有数据库和表。

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

4

1 回答 1

1

因此,您想在 ruby​​ 中使用在 mySQL 中创建的现有数据库。您需要在 config/database.yml 中设置配置。

这是一个例子

开发:
适配器:mysql2
编码:utf8
数据库:my_db_name
用户名:root
密码:my_password
主机:127.0.0.1
端口:3306

你还需要安装 mysql gem。并更新有关 mysql gem 的 Gemfile

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

于 2013-07-26T10:54:34.953 回答