簡體   English   中英

生成一個使用數據庫中現有數據的模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM