[英]Generate a model that uses pre-existing data from database
我正在使用預先存在的數據庫制作應用程序,我將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
我只想從數據庫中取出一個表,稱為帳戶視圖,我嘗試為此生成一個具有所有正確字段的支架,但是它告訴我,如果我進行遷移,則需要遷移(在瀏覽器中呈現時)將無法使用現有數據,對嗎? 我如何制作一個將使用現有數據和字段的模型?
謝謝你的幫助 :)
可以嘗試兩件事:...#1在不進行遷移的情況下運行您的腳手架,這樣就不會丟失您的腳手架。
rails g scaffold yourmodelname fieldone:fieldtype ... etc --no-migration
#2如果這不起作用,則可以走很長一段路,但要使用有效的架構版本號進行轉儲和重新加載
將此數據庫添加到yml到您的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命令手動進行操作,也可以運行rake db:drop)
現在,使用您的架構文件重新創建它。
bundle exec rake db:schema:load
現在添加回您的數據
bundle exec rake db:data:load
啟動服務器,並假設您正確匹配了模型中的所有數據字段(因此可以從支架中設置適當的強參數),您應該會很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.