Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Migrasi untuk membuat tabel memunculkan Mysql2::Error:Tabel tidak ada

Saya mendapatkan kesalahan serupa saat mencoba membuat model baru yang memiliki referensi ke model yang sudah ada yang dibuat sebelum bermigrasi ke Rails 5.1.

Meskipun pesan kesalahannya tidak terlalu jelas tentang itu, dalam kasus saya ternyata masalahnya adalah ketidakcocokan tipe data antara kunci utama model lama dan kunci asing model baru (MySQL tidak mengizinkan itu). Itu karena sejak Rails 5.1 tipe data default dari semua kunci utama dan kunci asing adalah bigint, tetapi untuk model lama tipe kunci utama masih bilangan bulat.

Saya memecahkan ini dengan mengonversi semua kunci utama dan kunci asing dari model saat ini ke bigint, jadi saya dapat menggunakan default baru Rails dan melupakannya.

Solusinya juga dapat menentukan tipe integer untuk kunci asing baru sehingga cocok dengan tipe kunci utama model lama. Sesuatu seperti berikut:

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. Manajer db mana untuk Tabel 100Go?

  2. Mysql/InnoDB berhenti bekerja di Linode Server

  3. Pencarian yang difilter pengguna di django

  4. Konektor MySQL untuk Python

  5. MySQL SEPERTI dengan json_extract