Packages

abstract class Migration[J] extends AnyRef

Non-serialisable representation of migrations but grants greater expressiveness

Scenario:

1) You changed some case classes and/or codecs 2) You want to see if deploying the code will work in some environment, i.e. will the data in that environment be decodable losslessly to the new schema 3) Therefore you need to take the data in the environment, apply any new migrations to it, and then decode/encode it with the new code/codecs. 4) This always requires the migrations & data be co-located.

The code here assumes you data will move to whereever the migrations are, i.e. that it's accessible, this may not be possible for some environments (prod, secure, disconnected, etc.)

If you can't move the data to the migrations you might be able to move the migrations to the data, but then the migrations need to be serializable, and thus cannot contain custom code. That approach is in jsondbc.migration.data

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Migration
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Migration()(implicit arg0: SPI[J])

Abstract Value Members

  1. abstract def migrate(json: J): MigrationResult[J]

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. implicit def anyFrills[A](value: A): AnyFrills[A]
    Attributes
    protected
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def delete: MigrationResult[J]
    Attributes
    protected
  8. implicit def descendantViaJsonFrills[From, To](descendant: Descendant[From, J, To]): DescendantViaJsonFrills[From, J, To]
    Attributes
    protected
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def failed(error: String): MigrationResult[J]
    Attributes
    protected
  12. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  15. def id: MigrationId
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  20. implicit val spi: Aux[J, JsonObject, JsonNumber]
    Attributes
    protected
  21. implicit def stringJsonSyntax(value: String): StringJsonSyntax
    Attributes
    protected
  22. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  23. def toString(): String
    Definition Classes
    Migration → AnyRef → Any
  24. def update(value: J): MigrationResult[J]
    Attributes
    protected
  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped