Tôi đồng ý với nhận xét từ trước tới nay. Ý tưởng di chuyển là giúp bạn dễ dàng điều chỉnh giản đồ dữ liệu phù hợp với ứng dụng của mình khi bạn muốn thêm các trường mới. Đó là một hệ thống đơn giản và đẹp. Vì vậy, có, bạn có thể (và nên) sử dụng rails generate migration...
như không chỉ tạo ra mã thích hợp trong nhiều trường hợp thông thường, nó còn theo dõi việc di chuyển nào đã được chạy trong các phiên bản khác nhau của cơ sở dữ liệu. Xem http://guides.rubyonrails.org/migrations.html#creating-a-migration
Một quy trình làm việc chung có thể là một cái gì đó như thế này:
- tạo ra một mô hình mới, ví dụ người dùng với các lĩnh vực như first_name, last_name, user_name
- này sẽ tạo ra một di cư đi kèm, mà bạn có thể chạy bằng cách sử dụng
bundle exec rake db:migrate
- lược đồ cơ sở dữ liệu của bạn sẽ được cập nhật
- bạn quyết định bạn muốn có thêm thông tin, chẳng hạn như ngày sinh, do đó hãy chạy
rails generate migration AddBirthdateToUser birthdate:date
. Đối với một số thao tác đơn giản như thêm cột, chỉ mục, v.v., mã di chuyển đầy đủ sẽ được tạo; trong các trường hợp khác, bạn cần viết di chuyển. Khi hoàn tất, hãy chạy di chuyển.
- Nếu bạn phát hiện sự cố khi phát triển, ví dụ loại trường phải nổi, không phải số nguyên hoặc bạn quên thêm chỉ mục, bạn có thể quay lại di chuyển (
bundle exec rake db:rollback
), khắc phục di chuyển và chạy lại.
- chạy thử nghiệm của bạn (sẽ chạy di chuyển) và khi tất cả hoạt động cho bạn cục bộ, hãy kiểm tra tệp (bao gồm cả di chuyển) và triển khai tới máy chủ phân phối hoặc QA, có bản sao cơ sở dữ liệu riêng.
- chạy
rake db:migrate
trên máy chủ dàn dựng. Nếu bạn đang ở trên một nhóm và các nhà phát triển khác đã kiểm tra di chuyển, họ cũng sẽ chạy. Bây giờ mã và lược đồ dữ liệu của bạn được đồng bộ hóa.
- lặp lại :-)
Không có hại gì chạy di cư trong việc triển khai sản xuất (Tôi trân trọng không đồng ý với một lời nhận xét ở trên) - bạn nên nắm lấy ý kiến cho rằng thay đổi, thậm chí thay đổi như thế này (có thể vô cùng khó khăn trong môi trường khác) là một phần bình thường trong cuộc sống hàng ngày của Rails!
Nguồn
2012-03-14 18:38:37
Thực sự không quá khó để viết kịch bản di chuyển theo cách thủ công. –
đúng, nhưng đối với mọi thay đổi tôi có (trong quá trình phát triển, tôi có rất nhiều thay đổi), tôi cần một vài kịch bản di chuyển AddXToY ... – Karan
tốt, tôi đoán tôi có thể chỉnh sửa kịch bản di dân gốc, và thả và tải lại cơ sở dữ liệu – Karan