-
Notifications
You must be signed in to change notification settings - Fork 440
/
Copy pathSchema.php
55 lines (45 loc) · 1.25 KB
/
Schema.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
namespace Enqueue\JobQueue;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Schema\Schema as BaseSchema;
/**
* @deprecated since 0.8, will be removed in 0.9
*/
class Schema extends BaseSchema
{
/**
* @var string
*/
private $uniqueTableName;
/**
* @param Connection $connection
* @param string $uniqueTableName
*/
public function __construct(Connection $connection, $uniqueTableName)
{
$this->uniqueTableName = $uniqueTableName;
$schemaConfig = $connection->getSchemaManager()->createSchemaConfig();
parent::__construct([], [], $schemaConfig);
$this->addUniqueJobTable();
}
/**
* Merges ACL schema with the given schema.
*
* @param BaseSchema $schema
*/
public function addToSchema(BaseSchema $schema)
{
foreach ($this->getTables() as $table) {
$schema->_addTable($table);
}
foreach ($this->getSequences() as $sequence) {
$schema->_addSequence($sequence);
}
}
private function addUniqueJobTable()
{
$table = $this->createTable($this->uniqueTableName);
$table->addColumn('name', 'string', ['length' => 255]);
$table->addUniqueIndex(['name']);
}
}