2013-10-10 97 views
0

使用预先存在的数据库创建应用程序,我设置了database.yml以使用数据库。生成使用数据库中预先存在的数据的模型

的database.yml

development: 
    adapter: mysql2 
    encoding: utf8 
# database: ttlem_demo_development 
    database: ttle 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: mysql2 
    encoding: utf8 
    database: ttlem_demo_test 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

production: 
    adapter: mysql2 
    encoding: utf8 
    database: ttlem_demo_production 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

我只想要一个表出来它被称为的意见数据库的,我尝试生成此与所有正确的字段的支架,但它告诉我,我需要迁移时(当我在浏览器中渲染它),如果我迁移我不会能够使用现有的数据,这是正确的吗?我如何制作一个将使用现有数据和字段的模型?

感谢您对所有您的帮助:)

+0

它是从一个预先存在的Rails应用程序的分贝,或只是预先存在的数据? – trh

+0

它只是预先存在的数据 –

回答

0

两件事情尝试:... #1没有迁移运行你的脚手架,因此不认为你错过了一个。

rails g scaffold yourmodelname fieldone:fieldtype ... etc --no-migration 

#2如果不工作,你可以走很长的路轮,但倾销和一个有效的架构版本号重装

添加该DB到阳明海运到你的Gemfile:

gem 'yaml_db', github: 'jetthoughts/yaml_db', ref: 'fb4b6bd7e12de3cffa93e0a298a1e5253d7e92ba' 

它可以用于导轨3或导轨4.

执行当前数据库的模式转储,以便获得具有有效版本号的schema.rb。

bundle exec rake db:schema:dump 

既然您有一个有效的模式转储您的数据。

现在用您的架构文件创建它:

bundle exec rake db:data:dump 

放下你的数据库(下降,你可以使用mysql命令手动,如果你喜欢或运行耙分贝做到这一点)。

bundle exec rake db:schema:load 

现在加回你的数据

bundle exec rake db:data:load 

启动服务器,并假设模型中的(所以适当的强烈参数从您的脚手架设置)的正确匹配所有的数据字段,你应该是好的。

相关问题