Tôi bắt đầu sử dụng Rails 2 vào tháng 4 năm ngoái nhưng đã ngừng hoạt động vào tháng 6 vì tôi nghĩ rằng khi Rails 3 được phát hành sẽ thực tế hơn vì rất nhiều nó đã được tái cấu trúc và tái cơ cấu hoàn toàn. Tôi đã từng làm việc với Ubuntu 10.04 (với SQLite3 là db mặc định) nhưng bây giờ tôi đang sử dụng Windows 7 và MySQL 5. Tôi đã cài đặt bộ điều hợp gem cho MySQL, nhưng để sử dụng nó, tôi vẫn cần phải chỉnh sửa database.yml. Cảm ơn.Làm cách nào để đặt MySQL làm cơ sở dữ liệu mặc định trong Rails 3?
Trả lời
Về cấu hình cơ sở dữ liệu, không có gì thực sự thay đổi giữa Rails 2 và 3 ngoại trừ cách bạn tải trình điều khiển MySQL của mình. Nơi đây từng được thực hiện trong config/environment.rb
nhưng bây giờ được thực hiện trong Gemfile
:
gem 'mysql'
Các tập tin mặc định config/database.yml
được thiết lập với SQLite, nhưng bạn có thể dễ dàng thay đổi theo điều này là MySQL. Phiên bản chung có dạng:
defaults: &defaults
adapter: mysql
username: localdev
password: mylocaldevpasswordwhateveritis
host: localhost
development:
<<: *defaults
database: project_dev
test:
<<: *defaults
database: project_test
Đó là dòng khai báo adapter
đặt trình điều khiển để sử dụng.
Trong câu trả lời của tadman, hãy sử dụng gem 'mysql2' cho đường ray 3 vì đường ray 3 giờ sử dụng bộ điều hợp mysql mới !!
Ngoài ra, trong bộ điều hợp database.yml ': mysql' -> 'adapter: mysql2' –
Bạn có thể thay đổi đường ray thành mặc định thành MySql khi bạn tạo một ứng dụng mới, nhưng bạn phải chỉnh sửa một dòng trong cài đặt đường ray của mình. Bạn sẽ phải thực hiện thay đổi cho mọi phiên bản và mỗi khi bạn cập nhật đá quý đường ray.
Tôi sử dụng Ruby-Enterprise. Vì vậy, đây là những gì tôi làm:
Trong tập tin (trong đó 1,8 là phiên bản ruby và 3.0.4 là phiên bản đường ray):
/opt/ruby-enterprise/lib/ruby/gems/1.8/gems/railties-3.0.4/lib/rails/generators/rails/app/app_generator.rb
Chỉnh sửa: Trong ray-3.1.0-rc1 file là:
gems/railties-3.1.0.rc1/lib/rails/generators/app_base.rb
Tìm kiếm dòng này:
class_option :database, :type => :string, :aliases => "-d", :default => "sqlite3",
Thay đổi "sqlite3" thành "mysql".
class_option :database, :type => :string, :aliases => "-d", :default => "mysql",
Vì vậy, thay vì thực hiện:
rails new application_name -d mysql
Tôi chỉ có thể làm (và database.yml và Gemfiles được cấu hình cho viên ngọc mysql2):
rails new application_name
này giả định bạn có đá quý mysql2 đã được cài đặt đúng. Ngoài ra, tôi chỉ làm điều này kể từ khi Rails 3 xuất hiện. Nó có thể tương tự cho các phiên bản trước. Một lần nữa, mỗi lần bạn cập nhật Rails, bạn sẽ phải tìm và chỉnh sửa tệp đó.
Tôi đang sử dụng RVM với Ruby 1.9.2 và Rails 3 và đường dẫn đến tệp cho tôi được tìm thấy tại: $ (rvm gemdir) /gems/railties-3.0.5/lib/rails/generators/rails/app/app_generator.rb. Các giảng viên làm việc hoàn hảo. – gunit888
Kể từ Rails 3.2 bạn có thể định nghĩa một tập tin .railsrc với các tùy chọn dòng lệnh tùy chỉnh mà sẽ luôn luôn áp dụng đối với rails new
Vì vậy, nếu bạn tạo một tập tin gọi là .railsrc
và đặt nó trong thư mục chính của bạn w/các nội dung như -d mysql
nó sẽ làm cho mysql trở thành cơ sở dữ liệu mặc định của bạn. Bạn có thể đặt bất kỳ tùy chọn dòng lệnh nào trong đó (bao gồm application templates tuyệt vời!)
Chạy rails new --help
từ dòng lệnh để xem tất cả các tùy chọn của bạn.
- 1. Rails 3 - làm cách nào để tránh hoàn toàn cơ sở dữ liệu?
- 2. Làm thế nào để sử dụng enum trong cơ sở dữ liệu Postgres trong Rails 3?
- 3. Cách đặt Mỏng làm mặc định trong Rails 3
- 4. Làm cách nào để xóa cơ sở dữ liệu MySQL?
- 5. Cơ sở dữ liệu để ứng dụng CRUD, Rails 3
- 6. Cách khôi phục/tạo lại cơ sở dữ liệu 'mysql' mặc định của mysql
- 7. Tôi làm cách nào để xem cơ sở dữ liệu mặc định của một đăng nhập?
- 8. Làm cách nào để đặt lược đồ mặc định của cơ sở dữ liệu trong SQL Server 2005?
- 9. Làm cách nào để nhập cơ sở dữ liệu định dạng Access MDB vào MySQL?
- 10. Đặt Rails lên trên cơ sở dữ liệu hiện có
- 11. Trong Oracle, làm thế nào để bạn thay đổi cơ sở dữ liệu 'mặc định'?
- 12. Làm cách nào để chuyển dữ liệu giữa 2 cơ sở dữ liệu MySQL?
- 13. Rails 3: ActiveRecord so với DataMapper (so với ???) cho Cơ sở dữ liệu MySQL kế thừa
- 14. Làm cách nào để nhập dữ liệu vào cơ sở dữ liệu mysql qua bàn làm việc mysql?
- 15. Làm cách nào để lấy trường cuối cùng trong cơ sở dữ liệu Mysql bằng PHP?
- 16. Rails 3 và cơ sở dữ liệu đồ thị
- 17. Rails 3 - Cách tạo đối tượng JSON để lưu trữ trong cơ sở dữ liệu
- 18. Làm cách nào để xóa khỏi cơ sở dữ liệu?
- 19. Đặt cơ sở dữ liệu hiện tại trong MySQL Script
- 20. Làm cách nào để sao chép Cơ sở dữ liệu mySQL bằng ruby trên đường ray?
- 21. Làm sạch hoặc đặt lại cơ sở dữ liệu thử nghiệm bằng Rspec và MongoID trên Rails 3
- 22. Làm cách nào để đặt tên cơ sở dữ liệu làm biến trong SSIS?
- 23. Làm cách nào để sử dụng LINQ với cơ sở dữ liệu MySql trên Mono?
- 24. Lỗi khi kéo cơ sở dữ liệu mysql trong cơ sở dữ liệu mysql cục bộ
- 25. Nhiều cơ sở dữ liệu trong Rails
- 26. Làm thế nào để chuyển đổi tệp cơ sở dữ liệu H2Database thành tệp cơ sở dữ liệu MySQL .sql?
- 27. Định tuyến Rails động dựa trên cơ sở dữ liệu
- 28. Làm cách nào để cập nhật hai cột trong cơ sở dữ liệu MySQL?
- 29. Làm cách nào để thực thi PHP được lưu trữ trong cơ sở dữ liệu MySQL?
- 30. Rails 3: Cách chèn Bản ghi vào Cơ sở dữ liệu bằng Rails
Có cách nào để đặt mysql làm mặc định thay vì sqlite không? –
Đối với các dự án mới? Không dễ dàng. Đây là một tính năng cốt lõi của Rails. Thông thường mọi người chuẩn bị một dự án "khung xương" cho các ứng dụng mới của họ được tùy chỉnh theo yêu cầu, với trình điều khiển cơ sở dữ liệu, plugin, đá quý được thiết lập như bạn thích, sau đó sao chép nó cho các dự án mới. Bằng cách đó bạn có thể có bất kỳ giá trị mặc định nào bạn thích, bất kể kỳ lạ như thế nào. – tadman
Cảm ơn. Vì vậy, tôi không thể làm cho nó mặc định cho các dự án mới. – arscariosus