Mysql 使用rails项目的现有数据库
我想在我的Ubuntu12Mechine中运行RubyonRails项目Mysql 使用rails项目的现有数据库,mysql,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Mysql,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,我想在我的Ubuntu12Mechine中运行RubyonRails项目 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
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项目中的现有数据库和表
这是由于任何代码错误或数据库设置造成的吗???因此您希望使用在ruby中的mySQL中创建的现有数据库。您需要在config/database.yml中设置配置
这里有一个例子
发展:
适配器:mysql2
编码:utf8
数据库:我的数据库名称
用户名:root
密码:我的密码
主持人:127.0.0.1
港口:3306
您还需要安装mysql gem。并更新关于mysql gem的gem文件
默认情况下,rails设置数据库在sqlite中,而不是在mySQL中,存储在rails\u ROOT/db/development.sqlite3中。这意味着您将无法使用mysql查看这些表。如果您在rails中创建了这些表,则需要使用sqlite3与它们进行交互,因此您希望使用在ruby中的mysql中创建的现有数据库。您需要在config/database.yml中设置配置
这里有一个例子
发展:
适配器:mysql2
编码:utf8
数据库:我的数据库名称
用户名:root
密码:我的密码
主持人:127.0.0.1
港口:3306
您还需要安装mysql gem。并更新关于mysql gem的gem文件
默认情况下,rails设置数据库在sqlite中,而不是在mySQL中,存储在rails\u ROOT/db/development.sqlite3中。这意味着您将无法使用mysql查看这些表。如果您在rails中创建了这些表,则需要使用sqlite3才能与它们交互