【问题标题】:Laravel queue/ rename jobs tableLaravel 队列/重命名作业表
【发布时间】:2018-11-20 18:38:54
【问题描述】:

我正在使用 Laravel 框架版本 Lumen (5.2.5)。我的要求是更改作业表名称(而不是作业,我想要 UAT 中的 uat_jobs 和 PROD 中的 prod_jobs)。

所以正如other StackOverflow anwer 中所建议的,在config\queue.php 文件中更改了表名,但无法创建新的作业表。 在运行 php artisan queue:table 命令时获取error

提前感谢您的帮助。

【问题讨论】:

    标签: php laravel queue jobs


    【解决方案1】:

    对于动态更改作业表名称使用

    <?php
    
    namespace App\Providers;
    
    use Illuminate\Support\ServiceProvider;
    
    class AppServiceProvider extends ServiceProvider
    {
        public function register()
        {
            if ('PROD' == $this->app->environment()) {
                Config::set('queue.connections.database.table', 'prod_jobs');
            } else if ('UAT' == $this->app->environment()) {
                Config::set('queue.connections.database.table', 'uat_jobs');
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      Lumen 没有 queue:table 命令 - 这是针对 Laravel 的。您需要手动创建作业表迁移。来自文档:

      Schema::create('jobs', function (Blueprint $table) {
          $table->bigIncrements('id');
          $table->string('queue');
          $table->longText('payload');
          $table->tinyInteger('attempts')->unsigned();
          $table->tinyInteger('reserved')->unsigned();
          $table->unsignedInteger('reserved_at')->nullable();
          $table->unsignedInteger('available_at');
          $table->unsignedInteger('created_at');
          $table->index(['queue', 'reserved', 'reserved_at']);
      });
      

      记得把上面代码中的表重命名为你想要的。

      您的版本的文档:https://lumen.laravel.com/docs/5.2/queues - 如果您不习惯在 Lumen 中排队,您也可以阅读其中的其余部分。

      【讨论】:

      • 非常感谢您的回答。我已经使用作业模式手动创建了表所以我没有尝试过你的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 2018-07-15
      • 1970-01-01
      • 2014-11-19
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多