使用knex创建postgresql表knex迁移
knex是nodejs中访问数据库的一个模块,支持多种数据库,并且使用knex可以使用js代码维护数据库表,官网:
本文讲创建数据表的部分,关于配置和迁移配置请参见官方文档:
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?