Как удалить таблицы в скользком каскаде (postgreSQL)?

Я использую PostgreSQL. Мне нужно отбросить каскад таблиц, вот фрагмент кода из Scala-Forklift, который мне нужно переопределить, чтобы отбрасывать таблицы, несмотря на неизвестные внешние ключи:

override def reset = {
val drop = MTable.getTables(None, None, None, None).flatMap { s =>
  DBIO.sequence(s filter { t =>
      t.tableType != null && t.tableType.toLowerCase == "table"
    } map { t =>
      TableQuery(new DummyTable(_, t.name.name)).schema.drop
    })
  }
  val f = db.run(drop)
  Await.result(f, Duration.Inf)
}

Но я не знаю как. Это возможно с гладкими схемами? Если нет, то не могли бы вы дать мне пример, как сделать это с SQL, интегрированным в этот метод для всех таблиц в "MTable"?

Заранее большое спасибо!

1 ответ

Вы пытались объявить вашу схему с внешним ключом следующим образом:

def aFK = foreignKey("artistid", artistFacebookId, artists)(_.facebookId, onDelete = ForeignKeyAction.Cascade)

Вам также необходимо изменить его в определении схемы PostgreSQL:

artistId     VARCHAR REFERENCES artists(facebookId) ON DELETE CASCADE,
Другие вопросы по тегам