adonis.js mysql_Adonis.js——数据库基本操作

一、配置数据库

adonis支持 PostgreSQL,SQLite,MySQL,MariaDB,Oracle,MSSQL 数据库,默认为SQLite。在 config/database 中修改配置。

connection: Env.get('DB_CONNECTION', 'mysql'),

二、创建数据库模型(Model)

λ adonis make:model profile

√ create app\Models\Profile.js

大多数情况下我们无需修改模型文件。

三、创建迁移(migration)

数据库迁移是一种从代码创建,更改和删除数据库表而不是编写SQL查询的过程。

λ adonis make:migration profile

> Choose an action Create table

√ create database\migrations\1532938278888_profile_schema.js

选择Create table。

创建好了之后,在文件中定义表格的格式。

'use strict'

const Schema = use('Schema')

class ProfileSchema extends Schema {

up () {//创建时执行内容

this.create('profiles', (table) => {

table.increments() // id字段

//这里是手动添加的---------

table.string('userNick')

table.string('introduction')

table.integer('age')

//---------------------------------

table.timestamps()

})

}

down () {//回滚时执行内容

this.drop('profiles')

}

}

module.exports = ProfileSchema

创建好了之后执行

adonis migration:status

可以看到所有迁移的执行情况

┌──────────────────────────────┬──────────┬───────┐

│ File name │ Migrated │ Batch │

├──────────────────────────────┼──────────┼───────┤

│ 1503248427885_user │ No │ │

├──────────────────────────────┼──────────┼───────┤

│ 1503248427886_token │ No │ │

├──────────────────────────────┼──────────┼───────┤

│ 1532938278888_profile_schema │ No │ │

└──────────────────────────────┴──────────┴───────┘

可以看到所有迁移都还没有执行,数据库中也没有一个表。

四、执行迁移,创建表格

输入:

adonis migration:run

输出:

migrate: 1503248427885_user.js

migrate: 1503248427886_token.js

migrate: 1532938278888_profile_schema.js

Database migrated successfully in 509 ms

这时候再运行adonis migration:status就能看到所有迁移都在运行中。

五、填充数据

这里我们给user表格填充数据。

创建一个seeder:

λ adonis make:seed user

√ create database\seeds\UserSeeder.js

进入文件,添加要插入的数据,然后使用crateMany进行插入。

'use strict'

const Factory = use('Factory')

const user = use('App/Models/User')

class UserSeeder {

async run () {

const users = [

{username: '赫鲁晓夫',email:'hlxf@sl.com',password:'maize'},

{username: '勃列日涅夫',email:'blrnf@sl.com',password:'medal'}

]

await user.createMany(users)

}

}

module.exports = UserInfoSeeder

之后再在命令行运行

λ adonis seed --files UserSeeder.js

Seeded database in 67 ms

如果不加 --files UserSeeder.js 那么将执行seeds目录下的所有*Seeder.js文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# ObservableCollection和List的区别

一、ObservableCollection和List的区别1)ObservableCollection比较简单,继承了Collection, INotifyCollectionChanged, INotifyPropertyChangedCollection:为泛型集合提供基类。INotifyCollectionChanged:将集合的动态更改通知给侦…

MS-SQLSERVER--错用了LEN()函数

sqlserver数据导入oracle时发现字符长度不对。。下面是两个函数的区别:DATALENGTH 返回任何表达式所占用的字节数。LEN 返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格转载于:https://www.cnblogs.com/yooplmqj/…

rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)

原文托管在Github: https://github.com/shellhub/blog/issues/52数据结构与算法之线性表-顺序表实现(C语言版本)前言数据结构与算法是一个程序员必备的技能之一,而顺序表更是每个程序员在面试过程中要经常被问到的,如Java语言中的ArrayList类的底层实现就是使用顺序…

浅析 record 使用场景

浅析 record 使用场景Intro之前我们有介绍过 record 基本知识,可以参考 C# 9 新特性 — record 解读,record 会实现基于值的类型比较,最近遇到的几个问题觉得用 record 来解决会非常方便,分享一下基于值的类型比较最近有遇到一个场…

jax rs mysql_Jersey / JAX-RS ExceptionMapper MySQL

我正在学习Jersey / JAX-RS,我需要一些ExceptionMapper的帮助 .我有一个UserFacade类,AbstractFacade类和User类本身,都非常标准,主要是通过在Netbeans中创建一个带有Database的新Web Service RestFUL项目生成的 . 我的问题是&…

hadoop安装详细步骤_推荐一个超详细的Hadoop安装教程,已有32万次阅读

安装Hadoop软件系列,首选Linux系统,比如Ubuntu。如果你的系统是Windows,建议再安装一个Ubuntu,组成双系统,如此可以发挥各自系统的特点。使用U盘制作一个系统,拿出一块分区用作新装的系统,开机启…

后宫佳丽三千,假如古代皇帝也懂负载均衡算法...

古代皇帝,后宫佳丽三千,没法做到雨露均沾,但为了繁衍后代,子嗣繁盛,弱水三千,只取一瓢饮显然是不行的。不同的朝代有不同的宠幸妃子的方法,著名的有羊车望幸、掷筛侍寝、翻牌悬灯等等。如果皇帝…

常见DDoS技术方法和对应防御措施

DDOS***是现在最常见的一种******方式,下面就给大家简单介绍一下DDOS的七种***方式。 1.Synflood: 该***以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大…

mac 配置php和mysql_Mac下配置PHP+MySql环境

由于最近需要布置mantis用来进行bug追踪,在此记录其过程。由于PHP apache环境在Mac OS上是自带的,所以不需要另处下安装包,只需要简单配置一下即可。首先打开终端输入命令:sudo vim /etc/apache2/httpd.conf其中有一行是这样的#Lo…

git使用的基本流程_git命令的基本使用

首先下载完git之后打开Git Bash配置你的邮箱和用户名(github或gitee):$ git config --global user.name "注册时账号的名字"$ git config --global user.email "注册时使用的邮箱"获取ssh公钥:ssh-keygen -t …

软件性能测试与LoadRunner实战可以在网上和书店买到了

有很多朋友和学员对这本书已经期待很久了,今天可以幸福的告诉大家这本书,您可以在China-pub上订购了(订购的链接:[url]http://www.china-pub.com/39876[/url]),也可以在书店买到喽。下面是专业人事的书评内…

Code Runner for VS Code 突破 2000 万下载量!支持超过 50 种语言

还记得五年前的夏天,我在巨硬写着世界上最好的语言,有时也需要带着游标卡尺写着另一门语言。然而,我对这两门语言都不熟悉,如果能在 VS Code 中方便快捷地运行各种语言,那岂不是很方便?于是,我就…

mysql group where_[MySQL] 测试where group by order by的索引问题

1. select * from test where axx group by b order by c 如何加索引CREATE TABLE index_test (id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(100) NOT NULL DEFAULT ,gid int(11) NOT NULL DEFAULT 0,age int(11) NOT NULL DEFAULT 0,PRIMARY KEY (id)) ENGI…

gpl可以商用吗_一文看懂开源许可证,能不能商用再也不抓瞎

在github中闲逛,宝藏多福利好。不过心里或许总有小忐忑,这么多开源项目,我的产品里能不能用呀!其实想知道项目能不能用看下项目的开源许可证就清楚了(即使是非软件产品比如数据、媒体、资料等也可以通过开源许可证知道它们的可用范…

使用 Tye 辅助开发 k8s 应用竟如此简单(一)

最近正巧在进行 Newbe.Claptrap 新版本的开发,其中使用到了 Tye 来辅助 k8s 应用的开发。该系列我们就来简单了解一下其用法。安装 Tye 首先,确保已经正确安装了 netcore 2.1 或以上版本的 dotnet SDK。Tye 目前还处于开发阶段,因此&#xff…

np变题了。但我过了

前天5月14号,一个平静的日子。我去参加了np的bsci考试,但不幸的是一进去看到考题就发晕了。题变了,后来才知道,我去考试的时间是变题的第二天。但万幸的是经过艰苦的努力,我终于看到了Congratulations,出来…

mysql修改主键生成策略信息_常用Hibernate 主键生成策略

1.AssignedAssigned方式由程序生成主键值,并且要在save()之前指定否则会抛出异常特点:主键的生成值完全由用户决定,与底层数据库无关。用户需要维护主键值,在调用session.save()之前要指定主键值。2.HiloHilo使用高低位算法生成主…

php上传文件很慢的原因_PHP编码安全:上传文件安全

一次性付费进群,长期免费索取教程,没有付费教程。进微信群回复公众号:微信群;QQ群:460500587教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍 微信公众号:计算机与网络安全ID:Computer-net…

RabbitMQ 入门:2. Exchange 和 Queue

上文RabbitMQ 入门:1. Message Broker(消息代理)提到过 RabbitMQ 实现了 AMQP 这个协议(RabbitMQ 所支持的 AMQP 的版本是 0.9.1),这个协议的内容很多,但为了构建入门级的分布式应用&#xff0c…

【组图】地震前线归来--心中的震撼

5.12号获悉家乡发生大地震,不放心在成都的家人朋友,于13日从北京赶回成都,再了解事态严重性,并确定家人情况后,14日与众多志愿者一起从成都出发,取道彭州市,通济镇,白水河镇&#xf…