Как удалить таблицы в скользком каскаде (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,