安装mysql : npm i –save egg-sequelize mysql2
配置
// config/plugin.js
// 配置mysql插件
sequelize:{
enable:true,
package:'egg-sequelize'
}
//config/default.js
// 配置数据库
config.sequelize = {
dialect:'mysql',
host:'127.0.0.1', //地址
username:'root', //账号
password:'yjx100860', //密码
port:3306, //端口
database:'eggapi', //数据名称
// 中国时区
timezone:'+08:00', define:{ // 取消数据库表名复数 freezeTablename:true, // 自动写入时间戳 created_at updated_at timestamps:true, // 字段生成软删除时间戳 deleted_at paranoid:true, createdAt:'created_at', updatedAt:'updated_at', deletedAt:'deleted_at', // 所有驼峰命名格式化 underscored:true }
安装 sequelize-cli : npm install –save-dev sequelize-cli
在 egg 项目中,我们希望将所有数据库 Migrations 相关的内容都放在 database
目录下,所以我们在项目根目录下新建一个 .sequelizerc
配置文件:
'use strict';
const path = require('path');
module.exports = {
config: path.join(__dirname, 'database/config.json'),
'migrations-path': path.join(__dirname, 'database/migrations'),
'seeders-path': path.join(__dirname, 'database/seeders'), 'models-path': path.join(__dirname, 'app/model'), };
初始化 Migrations 配置文件和目录
npx sequelize init:config
npx sequelize init:migrations
执行完后会生成 database/config.json
文件和 database/migrations
目录,我们修改一下 database/config.json
中的内容,将其改成我们项目中使用的数据库配置:
"development": {
"username": "root",
"password": "yjx100860",
"database": "eggapi",
"host": "127.0.0.1",
"dialect": "mysql", "timezone":"+08:00" },
创建数据库
npx sequelize db:create
———–开始创建数据表——
创建数据表
npx sequelize migration:generate --name=init-users
执行完后会在 database/migrations
目录下生成一个 migration 文件(${timestamp}-init-users.js
),我们修改它来处理初始化 users
表:
'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up (queryInterface, Sequelize) {
const {INTEGER,STRING,DATE,ENUM} = Sequelize
// 创建表名 : users
await queryInterface.createTable('users', {
id: {
type: INTEGER(20).UNSIGNED, primaryKey: true, //主键 autoIncrement: true //自增 }, username: { type:STRING(30), allowNull:false, //不允许为空 defaultValue:'', //默认值为空 comment:'用户名称', //备注用户名 unique:true //唯一性 }, password:{ type:STRING(200), allowNull:false, defaultValue:'', }, avatar_url:{ type:STRING(200), allowNull:false, defaultValue:'', }, sex:{ type:ENUM, values:['男','女','保密'], allowNull:false, defaultValue:'男', comment:'用户性别', }, created_at: DATE, updated_at: DATE, }); }, async down (queryInterface, Sequelize) { // 删除数据表 await queryInterface.dropTable('users'); } };
创建好后,执行代码,数据库的表才会创建
执行 migrate 进行数据库变更
# 升级数据库
npx sequelize db:migrate
# 如果有问题需要回滚,可以通过 `db:migrate:undo` 回退一个变更
# npx sequelize db:migrate:undo
# 可以通过 `db:migrate:undo:all` 回退到初始状态
# npx sequelize db:migrate:undo:all
以上就创建了数据库且创建了数据表
原文地址:http://www.cnblogs.com/qd-lbxx/p/16808307.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性