Saya memiliki model yang disebut User tetapi Sequelize mencari tabel PENGGUNA setiap kali saya mencoba untuk menyimpan di DB. Adakah yang tahu cara mengatur Sequelize untuk menggunakan nama tabel tunggal? Terima kasih.
109
Saya memiliki model yang disebut User tetapi Sequelize mencari tabel PENGGUNA setiap kali saya mencoba untuk menyimpan di DB. Adakah yang tahu cara mengatur Sequelize untuk menggunakan nama tabel tunggal? Terima kasih.
user
adalah kata khusus, Anda akan menemui banyak masalah jika benar-benar mencoba membuat tabel dengan nama itu.user
bukan kata khusus, tapi kata kunci. Meskipun Anda tidak akan menemui masalah dalam menggunakannya, ada baiknya untuk menghindarinya. dev.mysql.com/doc/refman/5.5/en/keywords.htmlJawaban:
The docs menyatakan bahwa Anda dapat menggunakan properti
freezeTableName
.Silakan lihat contoh ini:
sumber
freezeTableName: true
tidak berfungsi di versi terbaru sequelize. Ada solusi lain?freezeTableName
adalah itu juga mencegah sqlz dari nama tabel dan kolom huruf kecil. Artinya nanti, saat Anda menulis SQL untuk menggali data, Anda harus berurusan dengan nama dengan huruf campuran (apa pun artinya bagi dialek Anda). Pada pg, itu berarti harus menggunakan tanda kutip ganda di setiap nama kasus campuran - yuk! Saya berharap kami dapat memilih keluar dari pluralisasi tetapi tetap melipat kasus ...define
memilikitableName
opsi untuk penggantian eksplisit.freezeTableName: true
sebagai tambahanmodelName: 'singularName'
Meskipun jawaban yang diterima benar, Anda dapat melakukannya sekali untuk semua tabel daripada harus melakukannya secara terpisah untuk masing-masing tabel. Anda cukup meneruskan objek opsi serupa ke konstruktor Sequelize, seperti ini:
Sekarang ketika Anda menentukan entitas Anda, Anda tidak perlu menentukan
freezeTableName: true
:sumber
Jika Anda perlu memiliki nama model yang berbeda untuk definisi singuar dan jamak, Anda dapat memasukkan nama sebagai parameter dalam opsi model.
Silakan lihat contoh ini:
ini akan mengembalikan "person" sebagai objek saat satu rekaman dipertanyakan dan "orang" sebagai larik saat kita mengambil beberapa rekaman.
sumber