Rumah > hujung hadapan web > tutorial js > Langkah Menambah Lajur Baharu dengan Penghijrahan Sekuel

Langkah Menambah Lajur Baharu dengan Penghijrahan Sekuel

DDD
Lepaskan: 2025-01-07 10:37:40
asal
690 orang telah melayarinya

Steps to Add a New Column with Sequelize Migrations

Dalam kemas kini untuk platform blog saya, saya perlu menambah lajur imej kecil untuk menjadikan artikel lebih menarik secara visual. Kemas kini ini mengiringi peralihan daripada memaparkan semua artikel pada satu halaman kepada memaparkan setiap artikel pada halamannya sendiri, meningkatkan navigasi apabila bilangan artikel bertambah.

Lajur lakaran kecil menyimpan rentetan yang mewakili pautan ke imej. Pendekatan ini memastikan pangkalan data ringan dan memisahkan kebimbangan dengan mengendalikan storan imej di tempat lain.

Menambah Lajur Baharu pada Model

Untuk bermula, saya mengemas kini model BlogPosts untuk memasukkan lajur lakaran kecil. Tetapan allowNull: benar memastikan bahawa penambahan lakaran kecil adalah pilihan dan mengelakkan isu dengan siaran lama yang belum mempunyai lakaran kecil lagi:

thumbnail: {
    type: DataTypes.STRING,
    allowNull: true, // Optional for older posts
    },
Salin selepas log masuk

Walau bagaimanapun, perubahan kepada model ini sahaja tidak mencukupi. Pangkalan data Postgres tidak mengenali lajur baharu dan saya mengalami ralat:

ralat: lajur "gambar kecil" tidak wujud

Ini berlaku kerana model Sequelize mentakrifkan cara aplikasi berinteraksi dengan pangkalan data, tetapi mereka tidak mengubah suai skema pangkalan data secara automatik. Untuk menyelesaikan masalah ini, saya perlu menggunakan migrasi Sequelize.

Menyediakan Sekuel untuk Migrasi

Sebelum membuat migrasi, saya memastikan CLI Sequelize dimulakan dalam projek. Sebelum menjalankan arahan berikut, yang akan mencipta config/ folder dan persediaan yang berkaitan, pastikan anda memasangnya terlebih dahulu dengan memasukkan npm install sequelize-cli

npx sequelize-cli init

Di dalam folder config/, saya memilih untuk menggunakan fail config.js dan bukannya config.json. Ini membenarkan saya menggunakan pembolehubah persekitaran dengan dotenv untuk konfigurasi:

require('dotenv').config();

module.exports = {
   development: {
       username: process.env.DB_USER,
       password: process.env.DB_PASSWORD,
       database: process.env.DB_NAME,
       host: process.env.DB_HOST,
       dialect: "postgres",
   },
   production: {
       username: process.env.DB_USER,
       password: process.env.DB_PASSWORD,
       database: process.env.DB_NAME,
       host: process.env.DB_HOST,
       dialect: "postgres",
   },
};
Salin selepas log masuk

Saya kemudian mengalih keluar fail config.json untuk mengelakkan konflik.

Menjana Fail MIgrasi

Seterusnya, saya mencipta fail migrasi untuk menambah lajur lakaran kecil menggunakan arahan berikut:

npx sequelize-cli migration:generate --name add-thumbnail-to-blogposts

Ini mencipta fail baharu dalam migrasi/ folder, menamakan sesuatu seperti:

20241206232526-add-thumbnail-to-blogposts.js

Saya mengubah suai fail ini untuk menambah lajur baharu:

module.exports = {
  up: async (queryInterface, Sequelize) => {
      await queryInterface.addColumn('blogposts', 'thumbnail', {
          type: Sequelize.STRING,
          allowNull: true,
      });
  },

  down: async (queryInterface) => {
      await queryInterface.removeColumn('blogposts', 'thumbnail');
  },
};
Salin selepas log masuk

Memohon Migrasi

Untuk mengemas kini pangkalan data pembangunan, saya menjalankan arahan berikut:

npx sequelize-cli db:migrate

Ini berjaya menambahkan lajur lakaran kecil pada jadual catatan blog, membolehkan saya menyimpan pautan imej untuk setiap artikel.

Mengaplikasikan Migrasi dalam Pengeluaran

Untuk versi pangkalan data yang digunakan, saya mengikuti langkah ini:

Backup the Production Database: Before making changes, I downloaded a backup to safeguard against misconfigurations.
Copy the Migration Files: I ensured the updated config.js file and add-thumbnail-to-blogposts.js migration file were present in the server repository.
Set Environment Variables: I verified that the production environment variables required by dotenv were configured correctly. These were set in the Setup Node.js App section of cPanel.
Run the Migration: I navigated to the backend app directory in the production terminal and ran:
Salin selepas log masuk

npx sequelize-cli db:migrate --env production

Ini berjaya menambahkan lajur lakaran kecil pada pangkalan data Postgres pengeluaran.

Kesimpulan

Menambah lajur lakaran kecil membolehkan anda memaparkan imej untuk setiap artikel blog, meningkatkan daya tarikan visual dan kebolehgunaan platform. Langkah-langkah ini menyediakan pendekatan berstruktur dan berulang untuk menambahkan lajur baharu pada pangkalan data menggunakan migrasi Sequelize, yang penting untuk mengekalkan penyegerakan antara model dan pangkalan data.

Atas ialah kandungan terperinci Langkah Menambah Lajur Baharu dengan Penghijrahan Sekuel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan