首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧

引言 使用laravel数据库迁移功能进行的创建,和迁移回滚之后,我们继续说说在设计中 结构的更改之后的处理。以及如何数据库填充一些伪数据作为测试。...比如我们创建的 events , 如果在迁移文件内添加字段,代码如下: [pic] 我们在数据库中间的位置添加了一个 venue 字段。...很多时候,并不是说我们创建了,并且指定了字段名,和字段数据类型就算完事儿了。 我们需要空与非空约束,默认值约束,主键约束,约束等等数据库所具有的特性, 这才是关系型数据库的魅力。...laravel提供了脚手架命令: php artisan migrate:status 输出内容类似下图: [pic] 还有两个高危指令,一个是 magrate:reset...写在最后 本文是对上一章所述laravel数据库迁移功能的补充。数据库迁移是一个比较大的动作, 特别是已经上线生产的应用数据库,如果非到更新迁移的地步不可,需要预期做好演练, 以应对可能的突发事故。

1.7K30

Laravel代码简洁之道和性能优化

思考:如何提高Model层查询DB的效率?如何精简代码?...)-> unique (); $ table -> boolean ( ' active' ); $ table ->时间戳(); }); 使用upsert()插入一个新的用户或更新现有的一个...除 SQL Server 的所有数据库都要求这些列具有PRIMARY或UNIQUE索引。 提供要更新的列作为第三个参数(可选)。默认情况下,将更新所有列。...作为使用复合和原始表达式的示例,请考虑以下表,该计算每个帖子和每天的访问者: Schema :: create ( 'stats' , function ( Blueprint $ table )...int类型,不是laravel默认的时间格式,并且我们的插入时间和更新时间也不是laravel默认的字段,我们需要做如下定义: //时间戳类型 public $timestamps =

5.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

laravel - 根据数据库逆向生成迁移文件

写在最前 因为平时在用Mybatis的时候可以根据数据库逆向生成文件,我就在想laravel是不是也可以这么做,然后去网上找了一大堆,发现都在推“xethron/migrations-generator...(亲测支持前缀),然后使用composer安装库 composer require kitloong/laravel-migrations-generator 之后使用laravel的artisan就可以逆向生成迁移文件了...视图和将在 +1秒内创建....=PROC-FILENAME] 自定义存储过程迁移文件名,默认为: [datetime]\_create_[name]_proc.php --fk-filename[=FK-FILENAME] 自定义迁移文件名...--default-fk-names 不使用数据库进行迁移 --use-db-collation 使用现有数据库排序规则生成迁移 --skip-log 不写入迁移的日志 --skip-views

1.5K50

Laravel系列4.2】查询构造器

使用 查询构造器 也是通过一个 DB 门面,但是,在这里我们需要通过 table() 方法指定一个名。之后的操作就全都是针对这个指定的名了。接下来,我们就可以通过链式调用的方式进行数据库的操作。...我们又发现了一个设计模式在 Laravel 框架中的应用,意外不意外,惊喜不惊喜! 连查询 普通的连查询的使用还是非常简单的,我也就不多说了,下面的代码中也有演示。...一般的连查询,我们只需要一个相对应即可,但是在我的实际业务开发中,还会有遇到多个相对应的情况,这个才是我们接下来说的重点问题。...`sex` }); 代码中第一段的连查询就是最普通的一个的查询,如果要实现多个的话,就需要使用第二种方法。...接下来,我们更进一层,下篇文章将看看如何通过 ORM 映射的 Model 来实现数据库操作的,并且看看它们是如何运行的。

16.8K10

Laravel 通过迁移文件定义数据结构

在对数据库进行操作之前,需要先创建数据,在诸如 Laravel 这种现代框架中,通过代码驱动让数据结构的定义变得非常简单。...每一张新、每个新的字段、索引、以及都可以通过编写代码来定义,这样做的好处是在任何新环境中,你可以通过执行一个命令几秒钟就搞定项目的数据库结构。...修改表字段,接下来我们要讨论如何对表字段设置索引和。...('id')->on('users'); 如果你还想进一步指定约束(级联删除和更新,比如我们删除了 users 中的某个 id 对应记录,那么其在文章中对应 user_id 的所有文章会被删除...'); 注:不推荐使用,更不要使用约束功能,因为影响数据库性能,而且级联删除有可能造成非常严重的无法挽回的后果。

2.1K20

Laravel5.7 数据库操作迁移的实现方法

简介 所谓迁移就像是数据库的版本控制,这种机制允许团队简单轻松的编辑并共享应用的数据库结构。迁移通常和 Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库结构。...Laravel 的 Schema 门面提供了与数据库系统无关的创建和操纵的支持,在 Laravel 所支持的所有数据库系统中提供一致的、优雅的、流式的 API。...'); Schema::dropIfExists('users'); 通过重命名表 在重命名表之前,需要验证该包含的在迁移文件中有明确的名字,而不是 Laravel 基于惯例分配的名字。...否则,约束名将会指向旧的数据。...Laravel 还提供了创建约束的支持,用于在数据库层面强制引用完整性。

3.7K31

PostgreSQL 教程

主题 描述 插入 指导您如何将单行插入中。 插入多行 向您展示如何中插入多行。 更新 更新中的现有数据。 连接更新 根据另一个中的值更新中的值。 删除 删除中的数据。...使用 SERIAL 自增列 使用 SERIAL 将自动增量列添加到中。 序列 向您介绍序列并描述如何使用序列生成数字序列。 标识列 向您展示如何使用标识列。 更改 修改现有的结构。...重命名表 将的名称更改为新名称。 添加列 向您展示如何现有添加一列或多列。 删除列 演示如何删除的列。 更改列数据类型 向您展示如何更改列的数据。 重命名列 说明如何重命名表中的一列或多列。...了解 PostgreSQL 约束 主题 描述 主键 说明在创建或向现有添加主键时如何定义主键。 展示如何在创建新时定义约束或为现有添加约束。...PostgreSQL 视图 我们将向您介绍数据库视图概念,并向您展示如何管理视图,例如在数据库中创建、更改和删除视图。

47010

Entity Framework Core 2.1,添加种子数据

数据库的主键Id是int自增的。Id为1的数据曾经存在过,但是被我删除了。 然后看看会发生什么 生成的迁移类 命令:Add-Migration Xxx 看一下生成的迁移类的内容: ?...更改现有的种子数据 我在HasData方法里更改现有的种子数据,但是主键的值并没有改: ? 执行Update-Database时的SQL语句: ?...可以看到是根据主键对数据库里面的数据进行Update动作。 其结果也和我想的一样,就是更新现有的数据: ? 如果我把HasData里种子数据的主键值修改了 ? 我把四川的主键从2改为3。...OK 如果无法在Model里设置主键/ 有时,我们在主从关系的Model里不明确定义;有时候我们Model的主键是private set的; 这时我们就无法在HasData里设置主键/的值了...但是如果数据库已经存在了,那么EnsureCreated()不会更新数据库,也不会添加种子数据了。

1.6K10

如何Laravel5.8中正确地应用Repository设计模式

在本文中,我会向你展示如何Laravel 中从头开始实现 repository 设计模式。我将使用 Laravel 5.8.3 版,但 Laravel 版本不是最重要的。...这意味着你的业务逻辑不需要了解如何检索数据或数据源是什么,业务逻辑依赖于 repository 来检索正确的数据。 关于这个模式,我看到有人将它误解为 repository 被用来创建或更新数据。...除了默认的 Laravel 时间戳字段,我们的博客只需要 标题、内容 和 用户 ID 字段。 <?...config:clear 运行迁移 现在我们已经设置好了数据库,可以开始运行迁移了: php artisan migrate 这将会创建 blogs ,包含了我们在迁移中声明的 title , content...repository 设计模式也使更改数据源变得更加容易。在这个例子中,我们使用 MySQL 数据库来检索我们的博客内容。我们使用 Eloquent 来完成查询数据库操作。

4.2K31

Laravel Eloquent 模型关联关系(下)

今天我们将在定义好模型关联的基础上进行关联查询、插入和更新操作,看看如何借助模型关联提高代码的可读性并提高编码效率。...,这样做的好处是不需要指定关联模型与父模型的关联字段值,Eloquent 底层会自动判断并设置。...user_id' => mt_rand(1, 15)], ['content' => $faker->paragraph, 'user_id' => mt_rand(1, 15)] ]); 更新一对多所属模型字段...如果是要更新新创建的模型实例所属模型(父模型)的字段,比如以 posts 为例,新增的记录想要更新 user_id 字段,可以这么实现: $user = User::findOrFail(1);...空对象模型 如果字段 user_id 允许为空的话,当我们访问 Post 模型上的 author 属性时,默认返回为 null。

19.5K30

Laravel5.1 框架模型一对一关系实现与使用方法实例分析

1 实现一对一关系 1.1 准备工作 首先我们需要创建两张和对应的两个模型,第一个模型是用户,第二个模型是账号。...如果省略了第二个和第三个参数的话 Laravel根据方法名自动填充,会把第二个参数填充成 “user_id” 第三个参数填充 “id”,但是我们现在必须这样写,因为我自定义的是user_info_id...如果Laravel自动填充的话是找不到这个的 所以我们要手动的添加下。...belongsTo的第二个参数是 Account这个模型要用’user_info_id’去关联UserInfo模型。...相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

1.4K10

Laravel系列4.3】模型Eloquent ORM的使用(一)

通过前两篇文章的铺垫,我们很容易就能操作 Laravel 中的模型,但是,真正要改变的是你看待这种操作数据库的方式。要把数据库里的数据想像成是编程语言中的对象,这才是 ORM 最主要的内容。...这个其实和数据库的关联操作是有关系的。在标准的数据库结构中,我们是有主外的概念的,但是,说实话,在 MySQL 中使用主外的情况还真的是非常少。...之所以要有这个东西,主要也是为了数据之前能够在数据库层面保持一定的关联,这样我们就可以做一些特殊的操作,比如说定义数据库的事件或者定时任务之类的,或者在关联删除的时候能够更加有效率。...当然,在 Laravel 中,可以不在数据库层面进行严格的设置,就可以在框架代码中实现主外的关联。...别急,我们再来看看源码,看看框架中是如何把调用属性变成调用一个方法的。

8.8K20

如何在Ubuntu 14.04上使用Ansible部署高级PHP应用程序

介绍 在本教程中,我们将介绍如何设置SSH密钥以支持代码部署/发布工具,配置系统防火墙,配置和配置数据库(包括密码!),以及设置任务调度程序(crons)和队列守护进程。...如果您还没有这样做,请将目录更改为ansible-php。 cd ~/ansible-php/ 打开我们现有的剧本进行编辑。...第7步 - 迁移数据库 在此步骤中,我们将运行数据库迁移以设置数据库。...Cron任务是在设定的时间上运行的命令,可用于为您的应用程序执行任意数量的任务,例如执行维护任务或发送电子邮件活动更新 - 基本上任何需要定期完成而无需手动用户干预的任务。...此作业在运行时更新数据库以显示其正在运行。 我们现在有一个工作示例Laravel应用程序,其中包括正常运行的cron作业和队列工作程序。

10.7K60

MySQL技能完整学习列表5、数据库操作——1、创建数据库——2、修改结构(ALTER TABLE)

输入后,按Enter继续。 2、创建数据库 一旦登录,您就可以使用SQL命令来创建数据库。以下是一个简单的示例,演示如何创建一个名为“mydatabase”的数据库。...; 这将删除名为“mydatabase”的数据库及其所有内容。...10、添加约束 您可以使用`ADD CONSTRAINT`子句向中添加约束以维护引用完整性。...fk_customer的约束,该约束引用customers中的id列。...删除外约束使用类似的语法。使用ALTER TABLE语句时,请确保在执行任何结构更改之前备份数据库。这些更改可能会影响数据完整性或查询性能,并且在某些情况下可能需要重新构建或重新索引数据。

37310
领券