Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dbc5e5bed2 | ||
|
|
edf7974a4f | ||
|
|
84a76017d7 | ||
|
|
235c58d1a9 | ||
|
|
8b45dd556a | ||
|
|
5632f15107 | ||
|
|
1e9aeb6266 | ||
|
|
ad50a598af | ||
|
|
8138187667 | ||
|
|
d1da3f781a |
Regular → Executable
@@ -1,3 +1,5 @@
|
|||||||
|
https://book.cakephp.org/3.0/en/phinx/migrations.html#working-with-columns
|
||||||
|
|
||||||
```php
|
```php
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
@@ -20,3 +22,40 @@ $table->removeColumn('idb');
|
|||||||
$table->save();
|
$table->save();
|
||||||
Wrapper::commit();
|
Wrapper::commit();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
//Data Types
|
||||||
|
|
||||||
|
biginteger
|
||||||
|
binary
|
||||||
|
boolean
|
||||||
|
char
|
||||||
|
date
|
||||||
|
datetime
|
||||||
|
decimal
|
||||||
|
float
|
||||||
|
integer
|
||||||
|
smallinteger
|
||||||
|
string
|
||||||
|
text
|
||||||
|
time
|
||||||
|
timestamp
|
||||||
|
uuid
|
||||||
|
|
||||||
|
//Mysql-------------------
|
||||||
|
enum
|
||||||
|
set
|
||||||
|
blob
|
||||||
|
bit
|
||||||
|
json
|
||||||
|
|
||||||
|
//PostgreSql-------------
|
||||||
|
interval
|
||||||
|
json
|
||||||
|
jsonb
|
||||||
|
uuid
|
||||||
|
cidr
|
||||||
|
inet
|
||||||
|
macaddr
|
||||||
|
|
||||||
|
```
|
||||||
Regular → Executable
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "urfat/schema",
|
"name": "inforsistemas/schema",
|
||||||
"description": "From Phinx, just the DDL",
|
"description": "From Phinx, just the DDL",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"authors": [
|
"authors": [
|
||||||
|
|||||||
@@ -90,10 +90,12 @@ class AdapterFactory
|
|||||||
public function registerAdapter($name, $class)
|
public function registerAdapter($name, $class)
|
||||||
{
|
{
|
||||||
if (!is_subclass_of($class, 'Phinx\Db\Adapter\AdapterInterface')) {
|
if (!is_subclass_of($class, 'Phinx\Db\Adapter\AdapterInterface')) {
|
||||||
throw new \RuntimeException(sprintf(
|
throw new \RuntimeException(
|
||||||
|
sprintf(
|
||||||
'Adapter class "%s" must implement Phinx\\Db\\Adapter\\AdapterInterface',
|
'Adapter class "%s" must implement Phinx\\Db\\Adapter\\AdapterInterface',
|
||||||
$class
|
$class
|
||||||
));
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
$this->adapters[$name] = $class;
|
$this->adapters[$name] = $class;
|
||||||
return $this;
|
return $this;
|
||||||
@@ -109,10 +111,12 @@ class AdapterFactory
|
|||||||
protected function getClass($name)
|
protected function getClass($name)
|
||||||
{
|
{
|
||||||
if (empty($this->adapters[$name])) {
|
if (empty($this->adapters[$name])) {
|
||||||
throw new \RuntimeException(sprintf(
|
throw new \RuntimeException(
|
||||||
|
sprintf(
|
||||||
'Adapter "%s" has not been registered',
|
'Adapter "%s" has not been registered',
|
||||||
$name
|
$name
|
||||||
));
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return $this->adapters[$name];
|
return $this->adapters[$name];
|
||||||
}
|
}
|
||||||
@@ -141,10 +145,12 @@ class AdapterFactory
|
|||||||
public function registerWrapper($name, $class)
|
public function registerWrapper($name, $class)
|
||||||
{
|
{
|
||||||
if (!is_subclass_of($class, 'Phinx\Db\Adapter\WrapperInterface')) {
|
if (!is_subclass_of($class, 'Phinx\Db\Adapter\WrapperInterface')) {
|
||||||
throw new \RuntimeException(sprintf(
|
throw new \RuntimeException(
|
||||||
|
sprintf(
|
||||||
'Wrapper class "%s" must be implement Phinx\\Db\\Adapter\\WrapperInterface',
|
'Wrapper class "%s" must be implement Phinx\\Db\\Adapter\\WrapperInterface',
|
||||||
$class
|
$class
|
||||||
));
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
$this->wrappers[$name] = $class;
|
$this->wrappers[$name] = $class;
|
||||||
return $this;
|
return $this;
|
||||||
@@ -160,10 +166,12 @@ class AdapterFactory
|
|||||||
protected function getWrapperClass($name)
|
protected function getWrapperClass($name)
|
||||||
{
|
{
|
||||||
if (empty($this->wrappers[$name])) {
|
if (empty($this->wrappers[$name])) {
|
||||||
throw new \RuntimeException(sprintf(
|
throw new \RuntimeException(
|
||||||
|
sprintf(
|
||||||
'Wrapper "%s" has not been registered',
|
'Wrapper "%s" has not been registered',
|
||||||
$name
|
$name
|
||||||
));
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return $this->wrappers[$name];
|
return $this->wrappers[$name];
|
||||||
}
|
}
|
||||||
|
|||||||
+19
-10
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Phinx
|
* Phinx
|
||||||
*
|
*
|
||||||
@@ -26,6 +27,7 @@
|
|||||||
* @package Phinx
|
* @package Phinx
|
||||||
* @subpackage Phinx\Db
|
* @subpackage Phinx\Db
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Schema\Db;
|
namespace Schema\Db;
|
||||||
|
|
||||||
use Schema\Db\Table\Column;
|
use Schema\Db\Table\Column;
|
||||||
@@ -39,6 +41,7 @@ use Schema\Db\Adapter\AdapterInterface;
|
|||||||
*/
|
*/
|
||||||
class Table
|
class Table
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
@@ -87,7 +90,6 @@ class Table
|
|||||||
$this->setOptions($options);
|
$this->setOptions($options);
|
||||||
|
|
||||||
if (null !== $adapter) {
|
if (null !== $adapter) {
|
||||||
//echo 'Adapter definido';
|
|
||||||
$this->setAdapter($adapter);
|
$this->setAdapter($adapter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -349,11 +351,13 @@ class Table
|
|||||||
|
|
||||||
// Delegate to Adapters to check column type
|
// Delegate to Adapters to check column type
|
||||||
if (!$this->getAdapter()->isValidColumnType($column)) {
|
if (!$this->getAdapter()->isValidColumnType($column)) {
|
||||||
throw new \InvalidArgumentException(sprintf(
|
throw new \InvalidArgumentException(
|
||||||
|
sprintf(
|
||||||
'An invalid column type "%s" was specified for column "%s".',
|
'An invalid column type "%s" was specified for column "%s".',
|
||||||
$column->getType(),
|
$column->getType(),
|
||||||
$column->getName()
|
$column->getName()
|
||||||
));
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->columns[] = $column;
|
$this->columns[] = $column;
|
||||||
@@ -568,11 +572,12 @@ class Table
|
|||||||
$this->addColumn($createdAtColumnName, 'timestamp', array(
|
$this->addColumn($createdAtColumnName, 'timestamp', array(
|
||||||
'default' => 'CURRENT_TIMESTAMP',
|
'default' => 'CURRENT_TIMESTAMP',
|
||||||
'update' => ''
|
'update' => ''
|
||||||
))
|
)
|
||||||
|
)
|
||||||
->addColumn($updatedAtColumnName, 'timestamp', array(
|
->addColumn($updatedAtColumnName, 'timestamp', array(
|
||||||
'null' => true,
|
'default' => 'CURRENT_TIMESTAMP',
|
||||||
'default' => null
|
)
|
||||||
));
|
);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -584,16 +589,17 @@ class Table
|
|||||||
*
|
*
|
||||||
* @return Table
|
* @return Table
|
||||||
*/
|
*/
|
||||||
public function addSoftDelete($deletedAtColumnName = 'deleted_at'){
|
public function addSoftDelete($deletedAtColumnName = 'deleted_at')
|
||||||
|
{
|
||||||
$deletedAtColumnName = is_null($deletedAtColumnName) ? 'deleted_at' : $deletedAtColumnName;
|
$deletedAtColumnName = is_null($deletedAtColumnName) ? 'deleted_at' : $deletedAtColumnName;
|
||||||
$this->addColumn($deletedAtColumnName, 'timestamp', array(
|
$this->addColumn($deletedAtColumnName, 'timestamp', array(
|
||||||
'default' => null,
|
'default' => null,
|
||||||
'null' => true,
|
'null' => true,
|
||||||
));
|
)
|
||||||
|
);
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert data into the table.
|
* Insert data into the table.
|
||||||
*
|
*
|
||||||
@@ -626,10 +632,12 @@ class Table
|
|||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
|
if (!$this->getAdapter()->hasTable($this->name)) {
|
||||||
$this->getAdapter()->createTable($this);
|
$this->getAdapter()->createTable($this);
|
||||||
$this->saveData();
|
$this->saveData();
|
||||||
$this->reset(); // reset pending changes
|
$this->reset(); // reset pending changes
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates a table from the object instance.
|
* Updates a table from the object instance.
|
||||||
@@ -689,4 +697,5 @@ class Table
|
|||||||
|
|
||||||
$this->reset(); // reset pending changes
|
$this->reset(); // reset pending changes
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+22
-10
@@ -9,7 +9,8 @@ use Schema\Db\Adapter\MysqlAdapter;
|
|||||||
use Schema\Db\Adapter\SQLiteAdapter;
|
use Schema\Db\Adapter\SQLiteAdapter;
|
||||||
use Schema\Db\Adapter\SqlServerAdapter;
|
use Schema\Db\Adapter\SqlServerAdapter;
|
||||||
|
|
||||||
class Wrapper{
|
class Wrapper
|
||||||
|
{
|
||||||
|
|
||||||
private static $_instance;
|
private static $_instance;
|
||||||
|
|
||||||
@@ -19,14 +20,16 @@ class Wrapper{
|
|||||||
function __construct(){ }
|
function __construct(){ }
|
||||||
|
|
||||||
//SINGLETON==============================================
|
//SINGLETON==============================================
|
||||||
private static function newObj(){
|
private static function newObj()
|
||||||
|
{
|
||||||
if (!isset(self::$_instance)) {
|
if (!isset(self::$_instance)) {
|
||||||
self::$_instance = new Wrapper();
|
self::$_instance = new Wrapper();
|
||||||
}
|
}
|
||||||
return self::$_instance;
|
return self::$_instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getInstance(){
|
public static function getInstance()
|
||||||
|
{
|
||||||
if (!isset(self::$_instance)) {
|
if (!isset(self::$_instance)) {
|
||||||
return self::newObj();
|
return self::newObj();
|
||||||
}
|
}
|
||||||
@@ -34,7 +37,8 @@ class Wrapper{
|
|||||||
}
|
}
|
||||||
//=======================================================
|
//=======================================================
|
||||||
|
|
||||||
public static function set_driver(\PDO $driver){
|
public static function set_driver(\PDO $driver)
|
||||||
|
{
|
||||||
$instance = self::getInstance();
|
$instance = self::getInstance();
|
||||||
$instance->_driver = $driver;
|
$instance->_driver = $driver;
|
||||||
|
|
||||||
@@ -55,28 +59,36 @@ class Wrapper{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function get_table($name){
|
public static function get_table($name)
|
||||||
|
{
|
||||||
$instance = self::getInstance();
|
$instance = self::getInstance();
|
||||||
echo $instance->_adapter->getConnection()->prefix;
|
|
||||||
if( $instance->_adapter->getConnection()->prefix ){
|
if( $instance->_adapter->getConnection()->prefix ){
|
||||||
$name = $instance->_adapter->getConnection()->prefix . $name;
|
$name = $instance->_adapter->getConnection()->prefix . $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Table($name, Array(), $instance->_adapter);
|
return new Table($name, Array(), $instance->_adapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function begin(){
|
public static function begin()
|
||||||
|
{
|
||||||
$instance = self::getInstance();
|
$instance = self::getInstance();
|
||||||
$instance->_adapter->beginTransaction();
|
$instance->_adapter->beginTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function commit(){
|
public static function commit()
|
||||||
|
{
|
||||||
$instance = self::getInstance();
|
$instance = self::getInstance();
|
||||||
$instance->_adapter->commitTransaction();
|
$instance->_adapter->commitTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function exec($sql){
|
public static function exec($sql)
|
||||||
|
{
|
||||||
$instance = self::getInstance();
|
$instance = self::getInstance();
|
||||||
$sql = preg_replace('/{(.*)}/', "$con->prefix$1", $sql);
|
$prefix = $instance->_adapter->getConnection()->prefix;
|
||||||
|
$sql = preg_replace_callback('/{.*?}/', function($match) use ($prefix){
|
||||||
|
return str_replace('}', '', str_replace('{', $prefix, $match[0]));
|
||||||
|
} , $sql);
|
||||||
$instance->_driver->exec($sql);
|
$instance->_driver->exec($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Regular → Executable
Reference in New Issue
Block a user