Laravel 5框架学习之数据库迁移(Migrations)
Laravel 5 框架中的数据库迁移:创建、回滚与扩展
数据库迁移是 Laravel 5 框架的一大亮点,它就像数据库的“版本控制器”,让数据库结构的管理变得更为便捷。
在 Laravel 的 `database/migrations` 目录中,你会看到两个迁移文件,一个用于创建用户表,另一个用于用户密码重置。每个迁移文件包含两个主要方法:`up` 和 `down`。`up` 方法用于创建或修改数据表,而 `down` 方法则用于回滚更改,即删除数据表。
执行数据库迁移
运行命令 `php artisan migrate`,你会看到类似如下的输出:
```bash
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
```
查看 MySQL 数据库,你会发现除了原本的 `migrations` 表记录迁移历史,还有 `users` 和 `password_resets` 数据表。
数据库回滚
如果需要对已创建的表进行更改或回滚,可以使用 `php artisan migrate:rollback` 命令。执行后,刚刚创建的 `users` 和 `password_resets` 表将被删除,只留下 `migrations` 表。
新建迁移
要创建新的数据表,可以使用命令 `php artisan make:migration create_article_table --create='articles'`。这将在 `database/migrations` 目录下生成新的迁移文件。
迁移文件示例:
```php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateArticleTable extends Migration {
public function up() {
Schema::create('articles', function(Blueprint $table) {
$table->increments('id'); // 自动增长的 ID 列
$table->string('title'); // 标题列
$table->text('body'); // 正文列
$table->timestamp('published_at'); // 发布时间列
$table->timestamps(); // 创建和更新时间列
});
}
public function down() {
Schema::drop('articles'); // 删除 articles 数据表
}
}
```
在定义完迁移文件后,再次运行 `php artisan migrate` 命令,新的数据表 `articles` 将被创建。如果你想在已存在的表上添加新字段,只需在 `up` 方法中添加相应的字段定义即可。例如,为 `articles` 表添加 `title` 和 `body` 字段。执行迁移后,新的字段将被添加到数据表中。
数据库迁移是 Laravel 框架中强大而实用的功能,它让数据库结构的管理变得更为直观和便捷。通过简单的命令和配置,你可以轻松创建、修改和回滚数据库表结构。 Laravel 框架:如何添加新字段到文章表并回滚迁移
假设我们需要向文章表添加一个新的字段,名为“摘要”。这时,Laravel 迁移为我们提供了一种方便的方式来实现这个需求。让我们逐步深入了解这个过程。
你需要生成一个新的迁移文件,用以描述你的数据变更。打开终端,输入以下命令:
```bash
php artisan make:migration add_excerpt_to_articles_table
```
这将在 `database/migrations` 目录下生成一个新的迁移文件。打开这个文件,你会看到两个主要的方法:`up` 和 `down`。这两个方法分别对应着执行迁移和回滚迁移的操作。目前这两个方法都是空的,我们可以开始填充它们。
删除这个文件并重新生成迁移文件,这次我们添加一个参数来指定表名,命令如下:
```bash
php artisan make:migration add_excerpt_to_articles_table --table='articles'
```
现在,`up` 方法里面已经有了初始代码。这个代码为我们提供了一个框架,我们可以在其中添加我们的数据修改代码。我们的目标是向 `articles` 表添加一个名为 `excerpt` 的新字段。这个字段的类型是文本,并且可以为空。我们可以这样修改 `up` 方法:
```php
public function up()
{
Schema::table('articles', function(Blueprint $table)
{
$table->text('excerpt')->nullable();
});
}
```
接下来是 `down` 方法,这个方法用于回滚我们的迁移。也就是说,如果我们决定不要这个 `excerpt` 字段了,就可以调用这个方法。我们可以这样写:
```php
public function down()
{
Schema::table('articles', function(Blueprint $table)
{
$table->dropColumn('excerpt');
});
}
```
现在,我们已经完成了迁移文件的编写。接下来,我们需要执行这个迁移,让数据库做出改变。在终端中输入以下命令:
```bash
php artisan migrate
```
如果你想回滚这个迁移(也就是删除我们刚刚添加的 `excerpt` 字段),你可以使用以下命令:
```bash
php artisan migrate:rollback
```
以上就是关于如何在 Laravel 5 框架中添加新字段并回滚迁移的全部内容。希望这篇文章能对你有所帮助,让你更加熟练地掌握 Laravel 框架的使用。如果你有任何问题或需要进一步的帮助,请随时提问。通过这个过程,我们不仅学会了如何使用 Laravel 迁移来修改数据库结构,还了解了如何回滚这些更改,以便在必要时恢复数据。这对于任何开发者来说都是一个非常有用的技能,特别是在进行数据库管理和开发时。
微信营销
- Laravel 5框架学习之数据库迁移(Migrations)
- 如何理解象棋术语中的老兵
- jQuery手机拨号界面特效代码分享
- JavaScript中的对象和原型(一)
- jQuery实现获取元素索引值index的方法
- 远古战场冥想地方
- 关于base64编码的原理及实现方法分享
- 胡慧中电影大赏:如何观看她的电影全集
- 基于.net4.0实现IdentityServer4客户端JWT解密
- php中0,null,empty,空,false,字符串关系的详细介绍
- Fiddler4的安装与使用详解
- 通过实例分析MySQL中的四种事务隔离级别
- 使用Javascript实现选择下拉菜单互移并排序
- react native仿微信PopupWindow效果的实例代码
- 还有什么等待还有什么悲哀什么歌
- vuejs2.0实现分页组件使用$emit进行事件监听数据传