Replace schematic with south for migrations

RESOLVED WONTFIX

Status

Marketplace
Code Quality
RESOLVED WONTFIX
5 years ago
4 years ago

People

(Reporter: alexis, Unassigned)

Tracking

Points:
---

Details

(Reporter)

Description

5 years ago
Currently, the marketplace (and AMO) rely on schematic to do schema migrations.

Schematic doesn't seem to be maintained anymore and south comes with a bunch of nice features we could benefit from (automatic updates of the schemes for instance).

The biggest part of the work would be to migrate the migrations (yay, inception!) over to south.

Or maybe there is a reason we're not using South atm?
Alternatively, there's also https://github.com/paltman/nashvegas/ which seems to have a lot of Django community support and works a lot like schematic.

Comment 2

5 years ago
I've found South really annoying to work with and I'm not keen on it all. I don't have any problems with asking devs to write a bit of SQL. Schematic may be bare bones, but it works just fine.
(In reply to Alexis Metaireau (:alexis) from comment #0)
> The biggest part of the work would be to migrate the migrations (yay,
> inception!) over to south.

While I agree with comment 2, for the record, there is no reason to maintain old migrations.  Once the production database has the changes, the .sql files only matter in case someone happens to have an old version of the db (very unlikely and easy to just get a new version).

Comment 4

5 years ago
The only reason is if you start with a blank database. Otherwise you have to rely on landfill. A SQL statement (of quite a few lines of code) that resets all the SQL to a known good point and deletes a few hundred migrations would work for me.
(Reporter)

Comment 5

5 years ago
If that makes sense to remove all these migrations, then I think we should get rid of them.

Andy, if you start with a blank database, can't you directly run python manage.py syncdb to populate your db?

Also, if we have some data that's mandatory to make marketplace work, then doesn't it make sense to have these in fixtures we can load at syncdb's time?

If we don't have any problems with schematic, then maybe we could stick with it. I ran into some troubles with it not updating properly a bunch of times; and I'm wondering of other tools (South, nashvegas) would work better here.

Comment 6

5 years ago
The database is a custom db with different indexes and columns because it was built off of remora, the php powered app. If you do syncdb you will end up with a similar set of tables, but indexes, data types and encodings will be different enough to cause issues.
(In reply to Alexis Metaireau (:alexis) from comment #5)
> If that makes sense to remove all these migrations, then I think we should
> get rid of them.
> 
> Andy, if you start with a blank database, can't you directly run python
> manage.py syncdb to populate your db?

Not to mention missing default rows for categories, waffles, etc.

Comment 8

5 years ago
We aren't keen on this, if you really want to go for it, re-open.
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → WONTFIX
Hmmm, I missed the discussion on this. One thing worth noting is that South will be part of Django in 1.6

I agree, there would be some pain in moving to South but I've not had troubles with south in recent history. Most of my problems had to do with back when there was a lot more magic in South. These days it mostly Just Works™.
Bug necromancy! I don't really want to re-open this, mainly because I don't want to deal with this myself, but if someone else does, some info:

Kitsune (Mozilla Support django project) recently switched to South: http://www.bluesock.org/~willg/blog/dev/switching_to_south.html

In addition, we've been having yet another problem with Schematic migrations: https://bugzilla.mozilla.org/show_bug.cgi?id=905785
You need to log in before you can comment on or make changes to this bug.