laughk / TIL

2 stars 0 forks source link

TokyoDjangoMeetup #8 #2

Closed laughk closed 8 years ago

laughk commented 8 years ago

メモ置き場

http://django.connpass.com/event/27034/

laughk commented 8 years ago

写経用のリポジトリ

https://github.com/laughk/py3-django-tutorial

laughk commented 8 years ago

https://docs.djangoproject.com/en/1.9/intro/tutorial02/#activating-models このあたり

Migrations are how Django stores changes to your models (and thus your database schema) - they’re just files on disk. You can read the migration for your new model if you like; it’s the file polls/migrations/0001_initial.py. Don’t worry, you’re not expected to read them every time Django makes one, but they’re designed to be human-editable in case you want to manually tweak how Django changes things.

いい感じにマイグレーションしてくれるし、pythonのロジックとして落としてくれる。 自動生成された xxxx_initial.py は手動でいじって微調整することも可能。

といったところか。なるほどなー。

laughk commented 8 years ago

:memo: migrate 済みの XXXXX_hogehoge.py をいじって migrate を実行してもDBには反映されない。

たまたまチューとリアルをタイポってDBをがちゃがちゃしたときに発見

$ python manage.py migrate
Operations to perform:
  Apply all migrations: contenttypes, sessions, auth, admin, polls
Running migrations:
  No migrations to apply.
  Your models have changes that are not yet reflected in a migration, and so won't be applied.
  Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.

お作法としては

  1. 先に modele の方を修正
  2. makemigrations をもう一度実行して 次の XXXXX_hoge.py を作る
  3. 再び migrate

が正しい。下手に生成物をいじられると事故に繋がりそうだし、あたりまえといえば当たり前か。 良く出来てるなー。

laughk commented 8 years ago

https://docs.djangoproject.com/en/1.9/intro/tutorial02/#playing-with-the-api

大体この辺まで読んで試した。

ORM確かに便利ではあるなー。python いじってる感覚のままDBも弄れるのはメリットだと思う。 どんなSQL実行されてるのかわからないのが良くも悪くも出てる感じ。 このへんはDjango限ったことではないけど。

laughk commented 8 years ago

https://docs.djangoproject.com/en/1.9/intro/tutorial02

全部読んだ&やってみた。

laughk commented 8 years ago

終わってたんで閉じよ