Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Di chuyển để tạo bảng làm tăng Mysql2 ::Lỗi:Bảng không tồn tại

Tôi gặp lỗi tương tự khi cố gắng tạo một mô hình mới có tham chiếu đến một mô hình hiện có đã được tạo trước khi chuyển sang Rails 5.1.

Mặc dù thông báo lỗi không rõ ràng lắm về điều đó, nhưng trong trường hợp của tôi, hóa ra vấn đề là kiểu dữ liệu không khớp giữa khóa chính của mô hình cũ và khóa ngoại của mô hình mới (MySQL không cho phép điều đó). Đó là vì kể từ Rails 5.1, kiểu dữ liệu mặc định của tất cả các khóa chính và khóa ngoại là bigint, nhưng đối với mô hình cũ, kiểu khóa chính vẫn là số nguyên.

Tôi đã giải quyết vấn đề này bằng cách chuyển đổi tất cả các khóa chính và khóa ngoài của các mô hình hiện tại thành bigint, vì vậy tôi có thể sử dụng mặc định mới của Rails và quên nó đi.

Một giải pháp khác cũng có thể là chỉ định kiểu số nguyên cho các khóa ngoại mới để chúng khớp với loại khóa chính của các kiểu cũ. Một cái gì đó như sau:

class CreateUserImages < ActiveRecord::Migration[5.1]
  def change
    create_table :user_images do |t|
      t.references :user, type: :integer, foreign_key: true
      t.string :url
    end
  end
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các bước triển khai bảng băm trong PHP và Mysql

  2. So sánh quản trị cơ bản giữa Oracle, MSSQL, MySQL, PostgreSQL

  3. PDO và bộ nhớ đệm, làm thế nào để triển khai nó trong một lớp cơ sở dữ liệu?

  4. Lấy id chèn cuối cùng cho mysql sau khi Chèn

  5. Cách chuyển đổi dữ liệu bảng cơ sở dữ liệu mysql trong json bằng php