温馨提示×

linux laravel怎么迁移数据

小樊
40
2026-10-24 19:31:19
栏目: 智能运维

在 Linux 下使用 Laravel 迁移(Migration) 来管理数据库结构,是非常常见的做法。下面从 环境准备 → 创建迁移 → 执行迁移 → 常见问题 一步一步说明。


一、前提条件(Linux 环境)

  1. 已安装

    • PHP(建议 8.1+)
    • Composer
    • 数据库(MySQL / PostgreSQL / SQLite 等)
  2. Laravel 项目已存在

    cd /var/www/your-laravel-project
    
  3. 配置数据库 编辑 .env 文件:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=laravel
    DB_USERNAME=root
    DB_PASSWORD=password
    

    测试连接:

    php artisan tinker
    >>> DB::connection()->getPdo();
    

二、创建迁移文件

1. 创建数据表迁移

php artisan make:migration create_users_table

生成文件位置:

database/migrations/2024_01_01_000000_create_users_table.php

2. 编写迁移内容

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamps();
    });
}

public function down()
{
    Schema::dropIfExists('users');
}

三、执行迁移(核心)

1. 执行所有未执行的迁移

php artisan migrate

2. 强制迁移(生产环境)

php artisan migrate --force

3. 查看迁移状态

php artisan migrate:status

四、回滚迁移

回滚上一次

php artisan migrate:rollback

回滚所有

php artisan migrate:reset

回滚并重新迁移

php artisan migrate:refresh

清空数据并重新迁移(开发用)

php artisan migrate:fresh

五、生产环境注意事项(Linux)

1. 权限问题

chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage

2. 使用队列/定时任务时

php artisan config:cache
php artisan route:cache

3. 数据库备份(重要)

mysqldump -u root -p laravel > backup.sql

六、常见错误

❌ Class not found

composer dump-autoload

❌ SQLSTATE[HY000] Access denied

  • 检查 .env
  • 重启服务:systemctl restart mysql

❌ Migration table not found

php artisan migrate:install

七、示例完整流程

cd /var/www/laravel
cp .env.example .env
php artisan key:generate
php artisan make:migration create_posts_table
# 编辑 migration
php artisan migrate

如果你具体是指:

  • ✅ 从旧服务器迁移数据到新服务器
  • ✅ 使用 Laravel 迁移旧数据库结构
  • ✅ 导入/导出 SQL 数据

可以告诉我具体场景,我可以给你更针对性的方案。

0 踩