80 lines
3.5 KiB
PHP
80 lines
3.5 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
use Phinx\Migration\AbstractMigration;
|
|
|
|
final class CreateEmailLog extends AbstractMigration
|
|
{
|
|
public function up(): void
|
|
{
|
|
if($this->getEnvironment() == "thetool") {
|
|
$el = $this->table("EmailLog");
|
|
$el->addColumn("object_type", "string", ["null" => false, "length" => 255]);
|
|
$el->addColumn("object_id", "integer", ["null" => false]);
|
|
$el->addColumn("object_data", "string", ["null" => false, "length" => 255]);
|
|
$el->addColumn("from", "string", ["null" => false, "length" => 255]);
|
|
$el->addColumn("to", "string", ["null" => false, "length" => 255]);
|
|
$el->addColumn("headers", "json", ["null" => false]);
|
|
$el->addColumn("subject", "string", ["null" => false, "length" => 255]);
|
|
$el->addColumn("body_text", "text", ["null" => true, "length" => Phinx\Db\Adapter\MysqlAdapter::TEXT_LONG]);;
|
|
$el->addColumn("body_html", "text", ["null" => true, "length" => Phinx\Db\Adapter\MysqlAdapter::TEXT_LONG]);
|
|
$el->addColumn("create_by", "integer", ["null" => false]);
|
|
$el->addColumn("edit_by", "integer", ["null" => false]);
|
|
$el->addColumn("create", "integer", ["null" => false]);
|
|
$el->addColumn("edit", "integer", ["null" => false]);
|
|
$el->addIndex(["object_type"]);
|
|
$el->addIndex(["object_id"]);
|
|
$el->addIndex(["object_data"]);
|
|
$el->addIndex(["from"]);
|
|
$el->addIndex(["to"]);
|
|
$el->addIndex(["subject"]);
|
|
$el->create();
|
|
|
|
|
|
$ela = $this->table("EmailLogAttachment");
|
|
$ela->addColumn("emaillog_id", "integer", ["null" => false]);
|
|
$ela->addColumn("content_id", "string", ["null" => false, "length" => 255]);
|
|
$ela->addColumn("filename", "string", ["null" => false, "length" => 255]);
|
|
$ela->addColumn("create_by", "integer", ["null" => false]);
|
|
$ela->addColumn("edit_by", "integer", ["null" => false]);
|
|
$ela->addColumn("create", "integer", ["null" => false]);
|
|
$ela->addColumn("edit", "integer", ["null" => false]);
|
|
$ela->addIndex(["emaillog_id"]);
|
|
$ela->addIndex(["content_id"]);
|
|
$ela->addIndex(["filename"]);
|
|
$ela->create();
|
|
|
|
|
|
$elad = $this->table("EmailLogAttachmentContent");
|
|
$elad->addColumn("mimetype", "string", ["null" => false, "length" => 255]);
|
|
$elad->addColumn("filesize", "integer", ["null" => false]);
|
|
$elad->addColumn("sha256", "string", ["null" => false, "length" => 255]);
|
|
$elad->addColumn("content", "blob", ["null" => false, "length" => Phinx\Db\Adapter\MysqlAdapter::BLOB_LONG]);
|
|
$elad->addColumn("create_by", "integer", ["null" => false]);
|
|
$elad->addColumn("edit_by", "integer", ["null" => false]);
|
|
$elad->addColumn("create", "integer", ["null" => false]);
|
|
$elad->addColumn("edit", "integer", ["null" => false]);
|
|
$elad->addIndex(["sha256"]);
|
|
$elad->create();
|
|
|
|
}
|
|
|
|
if($this->getEnvironment() == "addressdb") {
|
|
|
|
}
|
|
}
|
|
|
|
public function down(): void
|
|
{
|
|
if($this->getEnvironment() == "thetool") {
|
|
$this->table("EmailLog")->drop()->save();
|
|
$this->table("EmailLogAttachment")->drop()->save();
|
|
$this->table("EmailLogAttachmentContent")->drop()->save();
|
|
}
|
|
|
|
if($this->getEnvironment() == "addressdb") {
|
|
|
|
}
|
|
}
|
|
}
|