pantsbuild / example-django

An example repo to demonstrate Django support in Pants

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Broken migrations example

xlevus opened this issue · comments

When running the example at the bottom of the README, the database migration code is run...

(note: the README is missing the run goal)

$ ./pants run helloworld/service/admin/manage.py -- migrate --database=users --database=greetings
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, greet, person, sessions, translate
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying greet.0001_initial... OK
  Applying greet.0002_data... OK
  Applying person.0001_initial... OK
  Applying person.0002_data... OK
  Applying sessions.0001_initial... OK
  Applying translate.0001_initial... OK
  Applying translate.0002_data... OK

But the .sqlite3 database files are not created.

$ find -name "*.sqlite3"   
... <nothing> ...
$ 

A similar issue exists when running other filesystem mutating commands such as makemigrations.

oddly, at one point there was a greetings.sqlite3 on my disk, but I have not been able work out how it was generated.

Thanks for the report. Yeah, good find - looks like after my recent docs change this is writing the .sqlite3 files in the execution sandbox, not in the real repo root.

Probably that older greetings.sqlite3 was from when you ran this before that change?

I guess Django writes sqlite3 files relative to its cwd. Will need to think of a solution.

Hmm, no, in run the CWD is the repo root. I guess Django does some magic to place the sqlite3 files relative to settings.py.

OK, this was an own goal, we add BASE_DIR as a prefix in our settings.py, fix coming...

Fixed in #13.