簡體   English   中英

如何使用 AdonisJs 遷移保存數組?

[英]How to save an array using AdonisJs migrations?

我正在嘗試將數組保存到 PostgreSQL 數據庫,但我做不到!

 'use strict' const Schema = use('Schema'); class UsersSchema extends Schema { up () { this.create('users', (table) => { table.increments(); table.string('name', 255).notNullable(); table.string('languages', 255).notNullable().defaultTo('[]'); table.timestamps(); }); } down () { this.drop('users'); } } module.exports = UsersSchema;

我嘗試像字符串一樣保存,像數組一樣保存並使用 JSON.parse(),但它不起作用

首先你的數據類型是錯誤的,Adonisjs 為特定列提供了“json”數據類型。 解決方案:-

  1. 從字符串更改列類型 -> JSON

  2. 在 model 中,將“types”列的數據類型設置為“string”

  3. 如何編寫查詢?

    a) 您需要使用播種機來插入數據

    b) 你必須編寫beforeSave()鈎子,然后使用JSON.stringify()將你的“類型”字符串化,以便數據庫可以接受它。

    c) 要檢索數據,編寫afterFetch()afterFind()鈎子以將 JSON 字符串解析為正常的 JSON。

如果您打算插入數據,您應該尋找播種而不是遷移

准備好包含遷移的數據庫架構后,下一步是添加一些數據。 這就是數據庫種子和工廠出現的地方。

在此處閱讀更多信息: https : //adonisjs.com/docs/4.1/seeds-and-factories

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM