Commit 1f0d2ab7 by Qiang Xue

Fixed Oracle DB type mapping. (Fixes #4)

parent 65d08423
...@@ -18,6 +18,28 @@ use yii\db\Connection; ...@@ -18,6 +18,28 @@ use yii\db\Connection;
*/ */
class QueryBuilder extends \yii\db\QueryBuilder class QueryBuilder extends \yii\db\QueryBuilder
{ {
/**
* @var array mapping from abstract column types (keys) to physical column types (values).
*/
public $typeMap = [
Schema::TYPE_PK => 'NUMBER(10) NOT NULL PRIMARY KEY',
Schema::TYPE_BIGPK => 'NUMBER(20) NOT NULL PRIMARY KEY',
Schema::TYPE_STRING => 'VARCHAR2(255)',
Schema::TYPE_TEXT => 'CLOB',
Schema::TYPE_SMALLINT => 'NUMBER(5)',
Schema::TYPE_INTEGER => 'NUMBER(10)',
Schema::TYPE_BIGINT => 'NUMBER(20)',
Schema::TYPE_FLOAT => 'NUMBER',
Schema::TYPE_DECIMAL => 'NUMBER',
Schema::TYPE_DATETIME => 'TIMESTAMP',
Schema::TYPE_TIMESTAMP => 'TIMESTAMP',
Schema::TYPE_TIME => 'TIMESTAMP',
Schema::TYPE_DATE => 'DATE',
Schema::TYPE_BINARY => 'BLOB',
Schema::TYPE_BOOLEAN => 'NUMBER(1)',
Schema::TYPE_MONEY => 'NUMBER(19,4)',
];
private $_sql; private $_sql;
/** /**
......
...@@ -15,26 +15,11 @@ use yii\db\ColumnSchema; ...@@ -15,26 +15,11 @@ use yii\db\ColumnSchema;
/** /**
* Schema is the class for retrieving metadata from an Oracle database * Schema is the class for retrieving metadata from an Oracle database
* *
* @todo mapping from physical types to abstract types
*
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class Schema extends \yii\db\Schema class Schema extends \yii\db\Schema
{ {
const TYPE_PK = 'NUMBER(10) NOT NULL PRIMARY KEY';
const TYPE_STRING = 'VARCHAR2(255)';
const TYPE_TEXT = 'CLOB';
const TYPE_INTEGER = 'NUMBER(10)';
const TYPE_FLOAT = 'NUMBER';
const TYPE_DECIMAL = 'NUMBER';
const TYPE_DATETIME = 'TIMESTAMP';
const TYPE_TIMESTAMP = 'TIMESTAMP';
const TYPE_TIME = 'TIMESTAMP';
const TYPE_DATE = 'DATE';
const TYPE_BINARY = 'BLOB';
const TYPE_BOOLEAN = 'NUMBER(1)';
const TYPE_MONEY = 'NUMBER(19,4)';
/** /**
* @inheritdoc * @inheritdoc
*/ */
...@@ -172,7 +157,6 @@ EOD; ...@@ -172,7 +157,6 @@ EOD;
* @internal param \yii\db\TableSchema $table ->name the table schema * @internal param \yii\db\TableSchema $table ->name the table schema
* @return string whether the sequence exists * @return string whether the sequence exists
*/ */
protected function getTableSequenceName($tablename){ protected function getTableSequenceName($tablename){
$seq_name_sql="select ud.referenced_name as sequence_name $seq_name_sql="select ud.referenced_name as sequence_name
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment