zoukankan      html  css  js  c++  java
  • 使用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
    – stringfloatdecimal
    – 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

     

     

  • 相关阅读:
    奇葩json结构解析--key是数字的json处理
    设计模式 -- 备忘录模式
    Django 模型
    Django 模板
    Django篇系列教程学习
    Django管理工具django-admin.py创建项目
    Django安装
    SQLite使用
    SQLite Manager插件安装与使用(firefox)
    CH-9 管理你的数据
  • 原文地址:https://www.cnblogs.com/yzeng/p/14078739.html
Copyright © 2011-2022 走看看