You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Plesk服务器上通过SSH执行Symfony数据库迁移?

在Plesk服务器上执行Symfony Doctrine数据库迁移的解决方法

先解决「Could not open input file: bin/console」错误

这个报错核心原因是当前工作目录不对,或是Symfony版本对应的控制台文件路径不同:

  • Symfony 4及以上版本:控制台文件路径为bin/console
  • Symfony 3及更早版本:控制台文件路径为app/console

在Plesk中执行迁移的两种可行方式

方式一:使用Plesk内置终端

  1. 登录Plesk后台,进入目标域名的「网站与域名」页面,找到「终端」入口(部分版本在「高级」分类下)
  2. 切换到Symfony项目根目录,比如项目部署在httpdocs下,执行:
    cd /var/www/vhosts/你的域名/httpdocs
    
  3. 根据Symfony版本执行迁移命令:
    # Symfony 4+版本
    php bin/console doctrine:migrations:migrate
    # Symfony 3及更早版本
    php app/console doctrine:migrations:migrate
    
  4. 若服务器存在多PHP版本,需指定项目使用的PHP路径,比如PHP 8.1:
    /opt/plesk/php/8.1/bin/php bin/console doctrine:migrations:migrate
    

方式二:通过Plesk的Composer工具执行

  1. 进入目标域名的「网站与域名」>「PHP Composer」
  2. 找到「执行命令」选项,直接输入迁移命令(确保路径对应项目根目录):
    bin/console doctrine:migrations:migrate
    
    若路径不生效,改用绝对路径:
    /var/www/vhosts/你的域名/httpdocs/bin/console doctrine:migrations:migrate
    

额外排查点

  • 确认doctrine/migrations组件已安装:在终端执行composer show doctrine/migrations,若未安装,执行composer require doctrine/migrations
  • 检查数据库配置:确认.env或.env.prod中的数据库连接信息(主机、用户名、密码、库名)与Plesk中创建的数据库完全匹配
  • 权限检查:确保bin/console文件有可读权限,必要时执行chmod +x bin/console赋予执行权限

关于手动创建表的建议

不推荐手动创建表——Doctrine迁移会维护迁移版本记录,手动建表可能导致后续迁移出现冲突或版本不一致问题。如果必须手动操作:

  1. 从本地开发环境导出完整的数据库结构SQL文件
  2. 在Plesk的「数据库」工具中导入该SQL文件
  3. 执行以下命令标记所有迁移为已完成,避免后续重复执行:
    php bin/console doctrine:migrations:version --add --all
    

内容的提问来源于stack exchange,提问作者Rumike7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:01:07