Postgres metadata collector
package core
case class TableDTO (name : String ,
column : Seq [ColumnDTO ],
unique_indexes : Option [Seq [UniqueIndexDTO ]],
indexes : Option [Seq [IndexDTO ]],
foreign_keys : Option [Seq [ForeignKeyDTO ]],
checks : Option [Seq [CheckDTO ]])
case class ColumnDTO (name : String ,
primary : Boolean ,
nullable : Boolean ,
column_type : ColumnType ,
has_sequences : Boolean ,
column_default : Option [String ])
sealed trait ColumnType {
def column_type : String
}
sealed trait NumberLike extends ColumnType {
def numeric_precision : Option [Int ]
def numeric_precision_radix : Option [Int ]
def numeric_scale : Option [Int ]
}
case class IntLike (db_type : String ,
numeric_precision : Option [Int ],
numeric_precision_radix : Option [Int ],
numeric_scale : Option [Int ]) extends NumberLike
case class DoubleLike (db_type : String ,
numeric_precision : Option [Int ],
numeric_precision_radix : Option [Int ],
numeric_scale : Option [Int ]) extends NumberLike
case class StringLike (db_type : String ,
character_maximum_length : Option [Int ]) extends ColumnType
case class TimeLike (db_type : String ,
datetime_precision : Option [Int ]) extends ColumnType
case class PGUuid (db_type : String ) extends ColumnType
case class PGBoolean (db_type : String ) extends ColumnType
case class PGByteArray (db_type : String ) extends ColumnType
case class PGOther (db_type : String ) extends ColumnType
case class UniqueIndexDTO (name : String ,
columns : Seq [ColumnDTO ])
case class IndexDTO (name : String ,
columns : Seq [ColumnDTO ])
case class ForeignKeyDTO (name : String ,
column : ColumnDTO ,
references_to_table : TableDTO ,
references_to_column : ColumnDTO ,
action_on_update : CascadeOp ,
action_on_delete : CascadeOp )
sealed abstract class CascadeOp {
def action : String
}
case class NoAction (action: String ) extends CascadeOp
case class SetDefault (action: String ) extends CascadeOp
case class SetNull (action: String ) extends CascadeOp
case class Restrict (action: String ) extends CascadeOp
case class Cascade (action: String ) extends CascadeOp
case class CheckDTO (name : String )
Installing required dependencies from GitHub ..
git clone https:// github.com/ ximagination80/ Comparator .git
cd Comparator
sbt test
sbt publishLocal