需要使用knex更改MySql Db中列的数据类型和默认值;

稍后数据类型是日期,需要将其更改为dateTime以及从NULL更改为CURRENT_TIMESTAMP所需的默认值

下面给出了MySql Query实现的相应功能

ALTER TABLE `Employees`

CHANGE COLUMN `added_date` `added_date` DATETIME DEFAULT CURRENT_TIMESTAMP ;

我创建了knex迁移文件来运行上面的更改:

迁移文件的内容如下:

exports.up = function(knex, Promise) {

return knex.schema.alterTable('Employee', function(t) {

t.dateTime('added_date').defaultTo(knex.fn.now());

});

} ;

exports.down = function(knex, Promise) {

return knex.schema.alterTable('Employee', function(t) {

t.date('added_date').nullable();

});

};

但这在构建时总是会抛出错误.

这是什么样的

Knex:警告 – 迁移失败并显示错误:alter table Employee add added_date datetime default CURRENT_TIMESTAMP – ER_DUP_FIELDNAME:重复列名’added_date’

迁移最新版本时出错

错误:ER_DUP_FIELDNAME:重复列名’added_date’

任何人都可以共享确切的方法/语法来改变上面给出的更改表吗?

解决方法:

目前(knex 0.12.6)无法通过raw()调用执行此操作.将来如果https://github.com/tgriesser/knex/pull/1759完成,将会有更复杂的列更改功能.

exports.up = function(knex, Promise) {

return knex.schema.raw('ALTER TABLE `Employees` CHANGE COLUMN `added_date` `added_date` DATETIME DEFAULT CURRENT_TIMESTAMP');

};

exports.down = function(knex, Promise) {

return knex.schema.raw('ALTER TABLE `Employees` CHANGE COLUMN `added_date` `added_date` DATE DEFAULT NULL');

};

编辑:我开始完成拉取请求,在下一个knex(0.12.7或0.13.0)版本中,我可以做到:

exports.up = function(knex, Promise) {

return knex.schema.alterTable('Employee', function(t) {

t.dateTime('added_date').defaultTo(knex.fn.now()).alter();

});

};

exports.down = function(knex, Promise) {

return knex.schema.alterTable('Employee', function(t) {

t.date('added_date').nullable().alter();

});

};

我还将这些添加到集成测试中以确保它们正常工作.

标签:mysql,database,alter-table,database-migration,knex-js

来源: https://codeday.me/bug/20190611/1218090.html

knex mysql 操作_mysql – 使用knex.js的我的Sql Alter表相关推荐

  1. knex mysql 操作_mysql – 使用knex.js的我的Sql Alter表

    需要使用knex更改 MySql Db中列的数据类型和默认值; 稍后数据类型是日期,需要将其更改为dateTime以及从NULL更改为CURRENT_TIMESTAMP所需的默认值 下面给出了MySq ...

  2. knex mysql 操作_手把手教你用express + mysql + knex 做个 todoList

    成果展示 启动mysql,用knex连接数据 接口功能拆分 建表:创建任务列表 查询任务列表 添加任务 删除任务 修改任务内容 把任务设为已完成/恢复任务为未完成 前端展示:vue+bootstrap ...

  3. ci mysql操作_MySQL基础篇/第3篇:MySQL基本操作语句.md · icanci/MySQL-Review - Gitee.com...

    ### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...

  4. sql2008能否打开mysql数据库_mysql数据库数据能不能导入到sql server中

    点"测试"按钮确认你的链接是正确的. Press the "Test" button to ensure your connection settings ar ...

  5. mysql中修改表字段的类型长度_(SQL)修改表结构[字段类型]、表字段长度,

    ①:更改字段类型长度 ALTER TABLE 表名 ALTER COLUMN 字段名 类型的长度–varchar(50) 例:把城市表的城市字段原来长度为20改为30 ALTER TABLE city ...

  6. knex 找不到mysql_node knex mysql ER_NOT_SUPPORTED_AUTH_MODE

    knex.js knex是可以用于支持 node.js和browser 查询SQL的框架. 安装 根据官网介绍 安装十分简单 npm install knex --save 并选择安装你需要的数据库驱 ...

  7. mysql有没有批量游标_MySQL使用游标批量处理进行表操作_MySQL

    一.概述 本章节介绍使用游标来批量进行表操作,包括批量添加索引.批量添加字段等.如果对存储过程.变量定义.预处理还不是很熟悉先阅读我前面写过的关于这三个概念的文章,只有先了解了这三个概念才能更好的理解 ...

  8. mysql相关操作_mysql相关操作(2)

    MySQL主从配置 1.知识简介 MySQL主从配置又叫做replication,AB复制.即在A,B两台机器做主从后,在A上写数据,在另一台B上也会跟着写数据,两者间数据实现实时同步. MySQL主 ...

  9. mysql 实务操作_mysql多表操作

    多表查询 内连接:过滤为空的数据(查询的实际上是两张表数据的交集部分) select * from 表1,表2 where 表1.字段=表2.字段; //隐式内连接,使用where条件消除笛卡尔积 s ...

最新文章

  1. C++11中std::shared_future的使用
  2. 团队-石头,剪刀,布-设计文档
  3. 牛客多校8 - Interesting Computer Game(并查集)
  4. 转://RMAN跨平台可传输表空间和数据库
  5. C#中使用jieba.NET、WordCloudSharp制作词云图
  6. 解决:clone 别人的Vue项目不能运行问题, node_modules missing
  7. 库克发文纪念苹果成立45周年:伟大使命还有待实现
  8. 青少年python编程竞赛加分_《笨方法学Python》加分题17
  9. 一个百分号%引起的事故
  10. gif动图怎么制作?手把手教你视频转gif动图
  11. MATLAB图像处理
  12. 位置不可用无法访问介质受写入保护的恢复方法
  13. 51单片机:数码管显示
  14. 用新开放的 notion api 结合 python 爬虫搞个羊毛线报页面
  15. classes是什么意思怎么读_四川专本套读解析 专本套读是什么意思?高中起点升本科最快多久毕业?...
  16. 通向KDE4之路(三):完全的Mac OS X撑持
  17. nginx connect()错误(10061: No connection could be made because the target machine actively refused it)
  18. 计算机仿真在机械行业中的应用,计算机仿真技术在机械行业中的应用
  19. MC/SG集群系统概述
  20. Hindawi投稿全流程实例讲解

热门文章

  1. 字符串操作函数的实现【详解】
  2. unniapp实现电子签名
  3. PictureSelector九宫格图片展示
  4. 借win11 WSA升级12l,水一贴升级方法和说说要不要升级win11。
  5. 超详细注释NLP Question answering竞赛(印度语和泰米尔语)
  6. Differentiable Scaffolding Tree for Molecule Optimization(论文解读)
  7. 我的新书——《PHP程序员面试笔试宝典》
  8. 你不知道的颠覆式创新者
  9. 真正的Netflix文化
  10. 苹果手机计算机网络设置,苹果手机上网速度慢怎么办!手把手教你如何解决