import migrations and don't require diesel_cli for admins
#555
Zusammengeführt
Plume_migration_agent
hat 9 Commits von integrated-migrations
nach master
vor 5 Jahren zusammengeführt
Laden…
In neuem Issue referenzieren
Hier gibt es bis jetzt noch keinen Inhalt.
Branch „integrated-migrations“ löschen
Das Löschen eines Branches ist permanent. Es KANN NICHT rückgängig gemacht werden. Fortfahren?
this is an attempt at integrating migrations to plm, with the goal to remove need for diesel_cli, and to allow arbitrary rust in migrations (can come handy for many reasons, like need to upgrade tantivy index version due to upstream changes, without need to take special steps for sysadmins)
Codecov Report
Isn't this always true? (maybe not, I'm really bad with Bash)
oops I tested with a value, and forgot to use the variable after 😬
👀
@ -0,0 +48,4 @@
.unwrap()
.chars()
.filter(char::is_ascii_digit)
.take(14)
this seems like a strange thing to
take()
what is this whole expression supposed to do?
@ -0,0 +48,4 @@
.unwrap()
.chars()
.filter(char::is_ascii_digit)
.take(14)
diesel store whether migrations were run by storing a 14 digit code. For
2019-03-06-115158_blog_images
, it is translated to20190306115158
. To do that I get an iterator over the folder name, filter only digits, and take the first 14 ones (if there are more, they are ignored). See here fortake
documentation@ -0,0 +49,4 @@
pub struct ImportedMigrations(&'static [ComplexMigration]);
impl ImportedMigrations {
pub fn run_pending_migrations(&self, conn: &Connection, path: &Path) -> Result<()> {
Should these
dbg!
be here?@ -0,0 +49,4 @@
pub struct ImportedMigrations(&'static [ComplexMigration]);
impl ImportedMigrations {
pub fn run_pending_migrations(&self, conn: &Connection, path: &Path) -> Result<()> {
no :x
At some point the documentation should also be updated to reflect that change
I don't think it would be possible, but creating the PostgreSQL database if it doesn't exist would be perfect.
But it already works fine, so you can merge as it is.
👍
@BaptisteGelez I think it's possible, I'll try to do it (diesel_cli does that from what I saw in it's code)
Edit: apparently it detect a connection error, assume it means the database don't exist, then connect to the same address but without specifying a database, run a query, and then try to reconnect. Considering the first step, this should probably be done in plm, not in plume-models
usually, create db is a more privileged operation than creating anything in that db…
and i sure hope people aren't giving our software that kind of permissions 😅
So, shall I try, or do I assume people have a "secure" configuration that don't allow us to do privileged things?
Let's say people have a secure configuration. 😄
Reviewer
49bb8cb0bc
gemergt.Schritt 1:
Wechsle auf einen neuen Branch in deinem lokalen Repository und teste die Änderungen.Schritt 2:
Führe die Änderungen zusammen und aktualisiere den Stand online auf Forgejo.