Sequelize是比较流行的ORM框架。什么是ORM框架呢?小白偷偷查了了一下手机。得到这样的定义。
ORM 是「对象关系映射」的翻译,英语全称为Object Relational Mapping,它是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的「虚拟对象数据库」…
总之,就是我们在具体的操作实体数据库的时候,就不需要再去和复杂的 SQL 语句打交道,只需简单的操作实体对象的属性和方法,就可以达到操作数据库的效果。
首先我们需要在node环境下安装sequelize-cli 和sequelize,然后由于依赖于mysql2,所以我们还要安装mysql2。
接下来我们可以操作了,执行命令.\node_modules.bin\sequelize init ,会生成一个config文件,注意这个文件的配置会影响到你数据迁移是否成功。这是我的config文件

{"development": {"username": "root","password": "123","database": "yellow_development",  "host": "127.0.0.1","dialect": "mysql","operatorsAliases": false,"timezone":"+08:00"},"test": {"username": "root","password": "123","database": "yellow_test","host": "127.0.0.1","dialect": "mysql","operatorsAliases": false},"production": {"username": "root","password": "123","database": "yellow_production","host": "127.0.0.1","dialect": "mysql","operatorsAliases": false}
}

这里需要注意password和database,password一定要和你的mysql密码一致,database就是你数据库的名字,一般他都会给你生成相应的数据库,如果你想修改数据库名,直接在这里修改,会生成"xxxx_development"的数据库。
接下来我们生成需要的表 ,还有这里命令的前缀".\node_modules.bin\sequelize" 一定不能丢掉,要不然命令无效。
执行.\node_modules.bin\sequelize model:create --name tableName --attributes 数据:数据类型(例如:id:INTEGER)
这样就就生成一个表了,需要什么表继续生成就行,你也可以在这里添加所有的属性,也可以在生成的文件里生成。
这时候会生成两个文件夹"models",这里就是数据库的模型,还有"migrations",这里面的数据跟models里的模型大概一致,但是这是迁移的文件,也就是决定你迁移后的数据是什么样的。

'use strict';
module.exports = {up: (queryInterface, Sequelize) => {return queryInterface.createTable('users', {  //user为数据表的名称//id,username,password都是我添加的数据,你也可以添加其他的数据。id:{allowNull:false,autoIncrement:true,primaryKey:true,type:Sequelize.INTEGER},username:{allowNull:false,type:Sequelize.STRING(20)},password:{allowNull:false,type:Sequelize.CHAR(32)},//createAt和updateAt都是文件生成的时候模板自带的createdAt: {allowNull: false,type: Sequelize.DATE,defaultValue:0},updatedAt: {allowNull: false,type: Sequelize.DATE,defaultValue:0}}, {tableName:'users',// Model 对应的表名将与model名相同charset:'utf8mb4',collate:'utf8mb4_bin'}).then(()=>{queryInterface.addIndex('users',{//添加索引,这里是我自己需要的操作,可以忽略,不会影响到最后的数据迁移name:'username',unique:true,fields:['username']})});},down: (queryInterface, Sequelize) => {return queryInterface.dropTable('users');}
};

需要关注的点我都标注在代码上了。这里我在迁移的时候遇到了一个问题,就是"Incorrect datetime value: ‘’ for column ‘updated’ at row 1",如果你在迁移的时候出现这个问题,那就是createAt的时间类型不对,必须是"YYYY-MM-DD"的类型。
ok,接下来可以经行数据迁移了,我们还需要生成一个种子文件,迁移之后的数据会保存在里面,执行命令".\node_modules.bin\sequelize seed:generate --name 文件名"。
以上都搞定之后就可以数据迁移了,继续执行命令".\node_modules.bin\sequelize db:migrate"。
如果成功,打开你的数据库。


ok,到这里数据就成功转移到数据库里面了。
小白还在入门,有什么不对或者疏漏的地方,请各位大佬悄悄告诉我,万分感谢!

Sequelize 数据迁移相关推荐

  1. svn的代码提交到git服务器_svn服务器代码仓库,数据迁移到git仓库

    svn服务器代码仓库,数据迁移到git仓库 1.安装svn [root@tomcat01 ~]# yum install subversion -y 2.初始化仓库 [root@tomcat02 ~] ...

  2. 记一次大规模数据迁移和加密

    公司的核心业务合作伙伴淘宝网,最近出现泄漏用户信息的现象,找了好久找不到根源,于是乎,淘宝那边决定对所有敏感数据进行加密,从出口和入口都走密文,于是乎,我们的工作量就来了. 我们的一个底单数据库,存储 ...

  3. 一种可以避免数据迁移的分库分表scale-out扩容方式

    原文地址:http://jm-blog.aliapp.com/?p=590 目前绝大多数应用采取的两种分库分表规则 mod方式 dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月 ...

  4. TFS数据迁移之sync_by_blk

    本文档记录了两套tfs 2.2.16系统之间的数据迁移过程. Source环境介绍: Tfs 主nameserver: 192.168.1.225/24 (vip 229) Tfs 从nameserv ...

  5. 完美数据迁移-MongoDB Stream的应用

    目录 一.背景介绍 二.常见方案 1. 停机迁移 2. 业务双写 3. 增量迁移 三.Change Stream 介绍 监听的目标 变更事件 四.实现增量迁移 五.后续优化 小结 附参考文档 一.背景 ...

  6. Entity Framework CodeFirst数据迁移

    原文:Entity Framework CodeFirst数据迁移 前言 紧接着前面一篇博文Entity Framework CodeFirst尝试. 我们知道无论是"Database Fi ...

  7. 我在MongoDB年终大会上获二等奖文章:由数据迁移至MongoDB导致的数据不一致问题及解决方案...

    作者 | 上海小胖 来源 | Python专栏(ID:xpchuiit) 故事背景 企业现状 2019年年初,我接到了一个神秘电话,电话那头竟然准确的说出了我的昵称:上海小胖. 我想这事情不简单,就回 ...

  8. codis3数据迁移探索

    背景 在测试codis的过程中,由于现网使用的codis的每个集群的量相对较大,为了确保在codis的升级过程中能够紧急处理突发的一些问题故熟悉一下codis有关的基本原理. codis的逻辑 cod ...

  9. Sqoop数据迁移原理及基本框架

    目录 Sqoop简介 Sqoop架构 Sqoop导入底层工作原理 Sqoop导出底层工作原理 Sqoop简介 Sqoop旨在协助RDBMS与Hadoop之间进行高效的大数据交流.可以把关系型数据库的数 ...

最新文章

  1. 廖雪峰python教程视频-为什么看不懂廖雪峰的Python学习教程?
  2. Luhn算法验证信用卡的合法性
  3. JSON返回DateTime/Date('123123123')/解决办法
  4. Python中的一些“小坑”
  5. [ActionScript 3.0] 安全沙箱的类型sandboxType,判断当前程序是AIR还是web程序
  6. jms spring_JMS和Spring:有时很重要的小事情
  7. linux定时执行python脚本_ubuntu定时执行python脚本实例代码
  8. 详解Haar特征与AdaBoost方法原理
  9. 5分钟在大米云上基于WordPress搭建一个博客
  10. 富爸爸穷爸爸读书感言
  11. 腾讯java校招,09.26 腾讯校招前端一面经历
  12. “微笑妹妹”9岁撑起一个家
  13. 罗格斯大学电气与计算机工程专业怎么样,罗格斯大学电气与计算机工程硕士专业...
  14. 用Java实现简单的井字棋程序(α-β剪枝)
  15. Subpalindromes
  16. Luogu 3807(Lucas定理)
  17. DDD学习(一)——通用语言
  18. Unity流水账8:MeshComponents
  19. 农夫知道一头牛的位置
  20. ARChon 分析之五 : chrome-app的开发方法

热门文章

  1. windows Git下载与安装
  2. 计算机链接手机网络游戏,怎么用手机玩Wegame电脑游戏 Wegame手机玩电脑游戏方法分享...
  3. Webug靶场之旅——显错注入
  4. 微商php源码,Thinkphp内核微商新零售平台源码
  5. 中国34个省市 按字母排序 uniapp城市列表
  6. 生物信息中的Markov链
  7. java调用 post_java调用post请求到localhost:4040
  8. 亚马逊开店创业 稳扎稳打稳赚钱
  9. 计算机键盘可以分为哪几个区,键盘分为哪几个区?分别是什么?
  10. Qt中事件过滤器eventFilter中所有枚举事件总结