OpenXE/classes/Components/SchemaCreator/Interfaces/DriverInterface.php
2021-05-21 08:49:41 +02:00

48 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Xentral\Components\SchemaCreator\Interfaces;
use Xentral\Components\Database\Exception\EscapingException;
use Xentral\Components\SchemaCreator\Exception\LineGeneratorException;
use Xentral\Components\SchemaCreator\Exception\SchemaCreatorTableException;
use Xentral\Components\SchemaCreator\Schema\TableSchema;
use Exception;
interface DriverInterface
{
/**
* @param TableSchema $currentSchema
* @param TableSchema $targetSchema
*
* @throws EscapingException
* @throws Exception
*
* @return string
*/
public function generateTableSchemaDiff(TableSchema $currentSchema, TableSchema $targetSchema): string;
/**
* @param string $table
*
* @throws LineGeneratorException
* @throws SchemaCreatorTableException
* @throws Exception
*
* @return TableSchema
*/
public function loadFromTable(string $table): TableSchema;
/**
* @param TableSchema $currentSchema
*
* @throws EscapingException
* @throws Exception
*
* @return string
*/
public function getTableDefinition(TableSchema $currentSchema): ?string;
}