tôi đang làm loại điều trong cuộc di cư của tôi:Rails Migrations: Kiểm tra sự tồn tại và tiếp tục đi?
add_column :statuses, :hold_reason, :string rescue puts "column already added"
nhưng nó chỉ ra rằng, trong khi làm việc này cho SQLite, nó không hoạt động cho PostgreSQL. Dường như nếu add_column thổi lên, ngay cả khi ngoại lệ bị bắt, giao dịch đã chết và vì vậy, Di chuyển không thể thực hiện bất kỳ công việc bổ sung nào.
Có bất kỳ không DB khác biệt cách kiểm tra xem cột hoặc bảng đã tồn tại chưa? Không, có cách nào để có được khối cứu hộ của tôi thực sự hoạt động không?
có coi Pract tốt nhất băng để kiểm tra xem một cột/bảng có tồn tại trước khi thêm/tạo nó không? (Tôi biết tất nhiên nó phụ thuộc vào vấn đề trong tay) –
Điều này làm việc với rollbacks nếu tôi xác định nó trong phương pháp thay đổi? – dardub
Vâng rollback sẽ là một vấn đề ... chúng tôi không chắc chắn liệu chúng ta nên loại bỏ các cột hay không .. kể từ khi chúng tôi không ghi lại trạng thái trước đó. – songyy