import migrations and don't require diesel_cli for admins #555
Sans évaluateur
Labels
Sans labels
A: API
A: Backend
A: Federation
A: Front-End
A: I18N
A: Meta
A: Security
Build
C: Bug
C: Discussion
C: Enhancement
C: Feature
Compatibility
Dependency
Design
Documentation
Good first issue
Help welcome
Mobile
Rendering
S: Blocked
S: Duplicate
S: Incomplete
S: Instance specific
S: Invalid
S: Needs Voting/Discussion
S: Ready for review
Suggestion
S: Voted on Loomio
S: Wontfix
Sans jalon
Sans projet
Sans assignation
2 participants
Notifications
Échéance
Aucune échéance n'a été définie.
Dépendances
Aucune dépendance définie.
Référence : Plume/Plume#555
Chargement…
Ajouter une table
Référencer dans un nouveau ticket
Sans contenu.
Supprimer la branche "integrated-migrations"
La suppression d’une branche est permanente. Bien qu’une branche supprimée puisse temporairement subsister, elle NE PEUT PAS être facilement restaurée. Continuer ?
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. 😄