在部署過程中(到共享主機),我想檢查某些數據是否被存儲在數據庫中,如果沒有我想在部署過程中,以將其插入。任何人都知道如何去做我所描述的?如何在部署期間播種數據?
回答
我個人喜歡用燈具來填充我的數據庫,無論是測試或沒有。一旦你創建了它們,你可以創建一個rake任務來重置你的db並填充它。我有這個reset_db.rake任務:
namespace :db do
desc "Drop, create, migrate, seed the database and prepare the test database for rspec"
task :reset_db => :environment do
Rake::Task['db:drop'].invoke
Rake::Task['db:create'].invoke
Rake::Task['db:migrate'].invoke
Rake::Task['db:fixtures:load'].invoke
Rake::Task['db:test:prepare'].invoke
end
end
在我的/ lib/tasks文件夾中。我用「rake db:reset_db」執行它。
我不知道你有多麼的靈活性與您對其他數據庫(不知道你是否能創造只爲這些值另一個數據庫)的主機,但你可以在XML文檔中放置這些數據,然後有一個如果腳本不存在,則插入這些值。
當你有權訪問Rails和Rake數據庫時:爲什麼你會這樣做? – Wes 2011-04-01 21:24:18
退房rake db:seed
甚至還有一個railscast:http://railscasts.com/episodes/179-seed-data
問題是我沒有ssh訪問,因此我無法運行'rake db:seed' – DanMark 2011-04-05 16:46:12
--- DB SEED APPROACH ---
有一個在db目錄(稱爲seed.rb文件APP_ROOT/db/seeds.rb),您可以在其中添加種子數據。註釋說明可在文件中找到(複製如下)。
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
# Mayor.create(name: 'Emanuel', city: cities.first)
你可以用你想添加例如記錄填寫:
Users.create(
:email=>"dummy", :pwd_hash=>"3x35zbb2...",
:pwd_salt=>'423x', :admin=>true
)
...然後運行耙分貝:種子的記錄添加到您的表。
--- 編輯遷移方法 ---
最簡單的選擇(儘管DB:種子可能是更好的)是剛剛與種子數據運行遷移。只需要這樣做。需要具有管理員權限的種子用戶,因爲網站沒有註冊選項。遷移文件如下:
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :email
t.string :password
t.string :name
t.boolean :admin
t.integer :company_id
t.timestamps
end
#create the seed user with admin priviledges
User.create!(:email=>"[email protected]", :password=>"test", :name=>"Dummy", :admin=>true, :company_id=>0)
end
end
- 1. 如何在部署期間保持數據同步?
- 2. 如何查找在Laravel數據庫播種期間錯誤在哪條線上?
- 3. NoSuchMethodException部署期間
- 4. 部署期間添加輔助數據庫數據
- 5. EF代碼優先,播種和部署
- 6. 如何部署數據庫
- 7. 在分享點部署期間保存列表數據
- 8. VS 2008數據庫項目 - 在部署'DatabaseName'期間未定義
- 9. 如何在glassfish 3上部署期間覆蓋JPA數據源JNDI名稱?
- 10. Zend Server如何在應用程序部署期間處理數據庫遷移
- 11. 如何在多種平臺上部署
- 12. 部署期間更改web.config
- 13. 部署期間的JBoss java.io.IOException
- 14. 如何在Linux上部署數據庫
- 15. 部署期間將數據保留在嵌入式數據庫中
- 16. 在部署期間/之後獲取Maven部署URL
- 17. 如何在部署期間在Seed方法中運行代碼?
- 18. 播種數據庫
- 19. java.lang.NoSuchFieldError:在Tomcat部署期間的REFLECTION
- 20. iisnode.yml在部署期間消失
- 21. 在部署期間aws codedeploy git修訂
- 22. 在部署期間創建SQL DB
- 23. 如何在Capistrano部署期間放置到外殼
- 24. 如何在部署期間擺脫setlocale警告?
- 25. 如何在Heroku部署期間更改默認設置'-DskipTests = true'?
- 26. 如何在jboss上部署期間停止掃描war文件
- 27. 如何在部署期間避免共享包文件夾
- 28. 如何在開發期間部署SharePoint Service應用程序
- 29. 如何在Tomcat熱部署期間覆蓋war文件?
- 30. 如何在.NET部署設置期間安裝vcredist_x86.exe
您檢查了Rails遷移指南:http://guides.rubyonrails.org/migrations.html – 2011-04-01 21:05:36
@Mladen Jablanovic:是的,我已經簽出的指南;問題是我沒有ssh訪問,因此我無法運行'rake'命令。 – DanMark 2011-04-05 16:46:52