我的 Web 應用程式的架構方式是每個用戶都有一個單獨的 SQLite 資料庫,其中包含他們的資料。我正試圖讓 Sequelize 在其中作業。我正在使用 SvelteKit,它本質上是后端的 Node。
用戶的 ID 被傳遞到函式中,然后他們的資料庫被初始化并回傳,如下所示:
//--- db.ts ---
export function db(user: string){
const sequelize = new Sequelize({
dialect: 'sqlite',
storage: './db/' user '/Database.sqlite'
})
return sequelize
}
//--- stuff.ts ---
import { db } from 'db'
const stuff = db(userId)
這一切都很好,但我不知道如何提前Model定義,因為我必須能夠將實體傳遞給它們Sequelize才能被初始化:
//--- field.ts ---
import { DataTypes, Model } from 'sequelize'
class Field extends Model {}
Field.init({
name:{ type: DataTypes.STRING }
}, {
sequelize, // <-- Need the instance
modelName: 'Field'
})
據我所知,Field每次db.ts訪問Sequelize. 但是那么不僅在函式Field的背景關系中可用嗎?db
這是在 Sequelize 中使用極端分片的正確方法嗎?有沒有辦法Field一般定義類,然后再給它sequelize實體?
uj5u.com熱心網友回復:
您只需要將所有模型定義代碼包裝到一個具有兩個引數的函式中:sequelize和DataTypes. 請參閱此問題和我的回答,了解如何注冊模型和關聯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/490795.html
上一篇:添加具有默認值的列,包括換行符
