… and add the missing newline after the initial <?php. Change-Id: I83bbbb1504e4b2bd97eec63c7626d34c655c3197
37 lines
825 B
PHP
37 lines
825 B
PHP
<?php
|
|
|
|
namespace Wikimedia\Rdbms;
|
|
|
|
/**
|
|
* Interface SchemaBuilder that gets a definition and produces SQL based on RDBMS
|
|
*
|
|
* @experimental
|
|
* @unstable
|
|
*/
|
|
interface SchemaBuilder {
|
|
|
|
/**
|
|
* An example of $schema value:
|
|
* [
|
|
* 'name' => 'actor',
|
|
* 'columns' => [
|
|
* [ 'actor_id', 'bigint', [ 'Unsigned' => true, 'Notnull' => true ] ],
|
|
* [ 'actor_user', 'integer', [ 'Unsigned' => true ] ],
|
|
* [ 'actor_name', 'string', [ 'Length' => 255, 'Notnull' => true ] ],
|
|
* ],
|
|
* 'indexes' => [
|
|
* [ 'actor_user', [ 'actor_user' ], 'unique' => true ],
|
|
* [ 'actor_name', [ 'actor_name' ], 'unique' => true ]
|
|
* ],
|
|
* 'pk' => [ 'actor_id' ]
|
|
* ],
|
|
* @param array $schema
|
|
* @return void
|
|
*/
|
|
public function addTable( array $schema );
|
|
|
|
/**
|
|
* @return string[] SQLs to run
|
|
*/
|
|
public function getSql();
|
|
}
|