package ideal
Contains the class and object to create the ideal database schema in memory.
- Alphabetic
- By Inheritance
- ideal
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- case class ArrayType(arrayOf: IdealDataType) extends IdealDataType with Product with Serializable
- case class BinaryType(size: Option[Int]) extends IdealDataType with Product with Serializable
- trait DataTypeOutput[A] extends AnyRef
Trait which is extended to produce an output.
Trait which is extended to produce an output. Eg SQL text output.
- A
The output type.
- case class DataTypePostgresSqlOutput(toCaseFunction: (String) => String) extends DataTypeSqlOutput with Product with Serializable
Produces output for types specific to Postgres, such as bytea, serial and text.
Produces output for types specific to Postgres, such as bytea, serial and text.
- toCaseFunction
Used as a post processor for SQL Keywords to produce a specifit output style, usually upper or lower case.
- abstract class DataTypeSqlOutput extends DataTypeOutput[String]
Implementation of an output which is an SQL String.
- case class FixedLengthBinaryType(size: Int) extends IdealDataType with Product with Serializable
- case class FixedLengthCharacterType(length: Int, charset: Charset) extends IdealDataType with Product with Serializable
- case class IdealColumn(name: String, dataType: IdealDataType, nullable: Boolean, remark: Option[String]) extends Product with Serializable
Represents the 'ideal' column.
Represents the 'ideal' column.
- name
Column Name
- dataType
Column Data Type
- nullable
is the data nullable?
- remark
Comment about the column
- sealed trait IdealDataType extends AnyRef
- case class IdealForeignKey(column: IdealColumn, foreignReference: (IdealTable, IdealColumn)) extends Product with Serializable
Represents an 'ideal' foreign key.
Represents an 'ideal' foreign key.
- column
A reference to the column this key is.
- foreignReference
Reference to the foreign key in a specific table.
- case class IdealSchema(name: String, tables: List[IdealTable]) extends Product with Serializable
Represents an 'ideal' Schema.
Represents an 'ideal' Schema.
- name
The name of the schema.
- tables
The list of tables within this schema.
- case class IdealTable(name: String, primaryKeyColumns: List[IdealColumn], columns: List[IdealColumn], foreignKeys: List[IdealForeignKey], uniqueConstraints: List[UniqueConstraint], remark: Option[String]) extends Product with Serializable
Represents an 'ideal' table.
Represents an 'ideal' table.
- name
Name of the table.
- primaryKeyColumns
A list of the primary keys of this table.
- columns
A list of the columns in the table (excluding primary and foreign key)
- foreignKeys
A list of the foreign key constraints reference from this table.
- remark
A comment about the table.
- case class IntegerType(autoIncrement: Boolean) extends IdealDataType with Product with Serializable
- case class LongType(autoIncrement: Boolean) extends IdealDataType with Product with Serializable
- case class NumericType(precision: Int, scale: Int) extends IdealDataType with Product with Serializable
- case class PostgresSqlOutput(toCaseFunction: (String) => String) extends SchemaOutput with Product with Serializable
- class SchemaOutput extends AnyRef
Responsible for producing Output from a Diff.
Responsible for producing Output from a Diff. In other words, what SQL statements need to be executed in order for the DB to be in sync with the ideal.
- case class StringType(length: Option[Int], charset: Charset) extends IdealDataType with Product with Serializable
- case class TimeType(withTimeZone: Boolean) extends IdealDataType with Product with Serializable
- case class TimestampType(withTimeZone: Boolean) extends IdealDataType with Product with Serializable
- case class UniqueConstraint(uniqueGroup: List[IdealColumn]) extends Product with Serializable
Value Members
- object BinaryType extends Serializable
- case object BooleanType extends IdealDataType with Product with Serializable
- case object DateType extends IdealDataType with Product with Serializable
- object Diff
Responsible for calculating the difference between the 'ideal' and what is in the Database Cache.
- case object DoubleType extends IdealDataType with Product with Serializable
- object IdealTable extends Serializable
- object IntegerType extends Serializable
- case object IntervalType extends IdealDataType with Product with Serializable
- object LongType extends Serializable
- object PostgresSqlOutput extends Serializable
- case object RealType extends IdealDataType with Product with Serializable
- object SchemaOutput
- case object SmallIntType extends IdealDataType with Product with Serializable
- object StringType extends Serializable
- object TimeType extends Serializable
- object TimestampType extends Serializable