使用knex创建postgresql表knex迁移
knex是nodejs中訪問數據庫的一個模塊,支持多種數據庫,并且使用knex可以使用js代碼維護數據庫表,官網:
http://knexjs.org/
本文講創建數據表的部分,關于配置和遷移配置請參見官方文檔:
http://knexjs.org/#Installation-migrations
一、創建遷移文件
knex migrate:make users
其中 users = 表名,執行該命令后將會在配置的遷移文件目錄生成文件:20201203093439_users.js
打開文件,內容如下:
exports.up = function(knex) {
};
exports.down = function(knex) {
};
其中up方法=執行的操作、down方法=回滾操作
即:up創建表 down刪除表
下面開始編寫創建數據庫的js代碼
二、創建數據表
在up方法里:
knex.schema.createTable('users', function (table) {
table.increments().primary();
table.string('name');
table.timestamps(true,true);
})
* tables.timestamps 方法會自動生成 created_at和updated_at字段,并且默認值為當前時間;increments 為自增列
knex支持的postgresql數據類型:
– integer – bigInteger – text – string – float – decimal – boolean – date – datetime – time – timestamp – binary – enum / enu – json – jsonb – uuid
* 這些數據類型都可以直接使用對應的方法創建字段,如:table.json(name)、table.string(name),其中name為字段名
如遇到不支持的數據類型,如:ip地址、數組等,可使用以下方法處理
knex提供了specificType 方法來創建原生數據庫字段類型
specificType—table.specificType(name, type)
如:
table.specificType('client_ip', 'cidr');
table.specificType('roles', 'varchar(50)[]');
其它常用設置方法:
【默認值】
defaultTo—column.defaultTo(value)
【非空字段】
notNullable—column.notNullable()
【字段描述】
comment—column.comment(value)
* 此方法會在數據庫生成字段描述信息
【索引】
index—table.index(columns, [indexName], [indexType])
三、回滾操作
在down方法里:
knex.schema.dropTable('users');
這樣就完成了創建表和刪除(回滾)表操作
執行下列命令即可同步/回滾到數據庫:
knex migrate:up
knex migrate:down
* 默認環境變量為:develpoment,如果要指定環境變量可使用參數 --env ,如下:
knex --env test migrate:up
knex --env test migrate:down
總結
以上是生活随笔為你收集整理的使用knex创建postgresql表knex迁移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑主板插线方法图解_JFP1主板插线图
- 下一篇: 任务型对话(一)—— NLU/SLU(意