Uname: Linux webm012.cluster130.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software: Apache
PHP version: 8.0.30 [ PHP INFO ] PHP os: Linux
Server Ip: 145.239.37.162
Your Ip: 216.73.216.190
User: dreampi (1009562) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : Migration_20221110_151621.php
<?php declare(strict_types = 1);

namespace MailPoet\Migrations\Db;

if (!defined('ABSPATH')) exit;


use MailPoet\Migrator\DbMigration;

/**
 * The "created_at" column must be NULL in some tables to avoid "there can be only one
 * TIMESTAMP column with CURRENT_TIMESTAMP" error on MySQL version < 5.6.5 that occurs
 * even when other timestamp is simply "NOT NULL".
 *
 * Additionally, having multiple timestamp columns with "NOT NULL" seems to produce the
 * following error in some SQL modes:
 *   SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'updated_at'"
 */
class Migration_20221110_151621 extends DbMigration {
  public function run(): void {
    $this->createTable('automations', [
      'id int(11) unsigned NOT NULL AUTO_INCREMENT',
      'name varchar(191) NOT NULL',
      'author bigint NOT NULL',
      'status varchar(191) NOT NULL',
      'created_at timestamp NULL', // must be NULL, see comment at the top
      'updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
      'activated_at timestamp NULL',
      'deleted_at timestamp NULL',
      'PRIMARY KEY (id)',
    ]);

    $this->createTable('automation_versions', [
      'id int(11) unsigned NOT NULL AUTO_INCREMENT',
      'automation_id int(11) unsigned NOT NULL',
      'steps longtext',
      'created_at timestamp NULL', // must be NULL, see comment at the top
      'updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
      'PRIMARY KEY (id)',
      'INDEX (automation_id)',
    ]);

    $this->createTable('automation_triggers', [
      'automation_id int(11) unsigned NOT NULL',
      'trigger_key varchar(191)',
      'PRIMARY KEY (automation_id, trigger_key)',
    ]);

    $this->createTable('automation_runs', [
      'id int(11) unsigned NOT NULL AUTO_INCREMENT',
      'automation_id int(11) unsigned NOT NULL',
      'version_id int(11) unsigned NOT NULL',
      'trigger_key varchar(191) NOT NULL',
      'status varchar(191) NOT NULL',
      'created_at timestamp NULL', // must be NULL, see comment at the top
      'updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
      'subjects longtext',
      'next_step_id varchar(191)',
      'PRIMARY KEY (id)',
      'INDEX (automation_id, status)',
    ]);

    $this->createTable('automation_run_logs', [
      'id int(11) unsigned NOT NULL AUTO_INCREMENT',
      'automation_run_id int(11) unsigned NOT NULL',
      'step_id varchar(191) NOT NULL',
      'status varchar(191) NOT NULL',
      'started_at timestamp NOT NULL',
      'completed_at timestamp NULL DEFAULT NULL',
      'error longtext',
      'data longtext',
      'PRIMARY KEY (id)',
      'INDEX (automation_run_id)',
    ]);
  }
}
© 2026 GrazzMean-Shell