データベースマイグレーション前編 | djangoチュートリアル #15

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024

Комментарии • 15

  • @IT-jt5uq
    @IT-jt5uq  4 года назад +3

    僕が「初心者の時に教えて欲しかった!」という内容です。
    苦労して作ったので、観たらぜひコメント下さい。

  • @tomoyanishida7169
    @tomoyanishida7169 3 года назад

    本日もありがとうございました!Shunさんが「初心者の時に教えて欲しかった!」と思っていることに共感し、今日学べてよかったと思える日に早くきてほしいです

  • @masa_poeny
    @masa_poeny 3 года назад

    mysqlが導入できずに困ってましたが、やっと成功し講座を進められました。djangoの全体像もだいたい掴めてきました。次はdjangoのデフォルト機能と効率化手法を学びます。

  • @029id014
    @029id014 3 года назад

    あけましておめでとうございます。
    理論的な面と実践的な面の両方をカバーされていて
    本当に勉強になりました。ありがとうございます。
    最後のslugのところについて一つ質問させて下さい。
    本堂さんのなさっている通りに手を動かしてやってみた
    つもりなのですが……
    既存レコードについてslugフィールドに手作業で値を入れた後に
    本来あるべき、slug = models.SlugField(unique=True)
    にしました。
    その後、phpMyAdmin(reflesh後)でslugの値を空欄にしてみると、
    それが通ってしまいます。さらにもう一件、空にすると、
    そのとき初めて(レコード1と同じだよ)ということで却下されます。
    この状況ではデフォルトで空欄が許されてしまうのか?と思い、
    slug = models.SlugField(unique=True, null=False) とか
    slug = models.SlugField(unique=True, blank=False) などと
    試行錯誤してみたのですが……
    上記のようにmodels.pyを書き換えても
    makemigrations については、No changes detected
    migrateについては、No migrations to apply.
    というレスポンスで、相変わらず(1件目については)
    slugフィールドの空欄が許容されてしまいます。
    急ぎません(お正月休みが一段落してからで全く構いません)ので
    お時間のあるときに、何か助言、アドバイスがいただければ幸いです。
    よろしくお願いします。

    • @IT-jt5uq
      @IT-jt5uq  3 года назад

      調べてみます。

    • @IT-jt5uq
      @IT-jt5uq  3 года назад

      > phpMyAdmin(reflesh後)でslugの値を空欄にしてみると、それが通ってしまいます
      phpMyAdminで空欄にすると""(空文字列)で保存されますね。
      これはNULLではないので、null=FalseでもOKです。
      > slug = models.SlugField(unique=True, null=False) とか
      > slug = models.SlugField(unique=True, blank=False)
      null=Falseは指定しない場合と同様なのでマイグレーションは発生しません。
      blankはdjangoのフォームの話でデータベースには影響しないのでマイグレーションは発生しません。

    • @029id014
      @029id014 3 года назад

      @@IT-jt5uq
      コメント、ありがとうございます。
      恥ずかしながら、ド素人ゆえ
      空文字列とNullの違いも理解できていませんでした。
      大変失礼しました。
      ただ……null=Falseなどとしても
      空欄(空文字)でも(最初の1件は)通ってしまうとすると
      〔hoge.com/slug〕のようなURLを想定している場合、
      Django(やDB)ではなく、入力する人間が気をつけないと、
      (slugを空文字にした)個別ページと
      トップページのURLがダブってしまうことになりますね。
      この講座を通じて、Python/Djangoについて
      さらに学びを深めていきたいと思います。
      よろしくお願いします。

  • @黄鼻
    @黄鼻 3 года назад

    間違えて#14回に質問してしまいました…ロールバックは一回前まで戻れるんですね!有難うございます。
    自作でwebページを作っていてaタグの飛びどころを設定していないので、この講座でページ遷移の管理ができる様になりたいです。

    • @黄鼻
      @黄鼻 3 года назад

      再度見直して疑問が湧きました。
      スナップショットは自動化できるのですか?
      そうでなければ、万が一スナップショットし忘れた時にロールバックが一個前までだけできるということでしょうか?
      毎回濃い動画を有難うございます!

    • @IT-jt5uq
      @IT-jt5uq  3 года назад

      スナップショットはdjangoではなく、AWSなどサーバーのサービスやソフトに付随する機能になります。
      高度なものだともともと自動機能もあるでしょうし、自分で組むことも出来ます。
      データベースのロールバックはdjangoにも機能があり、今回動画で説明しているように好きな時まで指定して巻き戻すことができます。
      現実的にはスナップショット機能の方で巻き戻すのが普通です。

  • @遼子規耕作
    @遼子規耕作 4 года назад

    勉強になりました。ありがとうございます

  • @遼子規耕作
    @遼子規耕作 4 года назад

    勉強になりました。

  • @huruike
    @huruike 3 года назад

    ありがとうございます!

  • @雅人桂
    @雅人桂 3 года назад

    slugの追加について、今回は手動でblog1、blog2と設定しましたが、仮に既存の設定が大量にある場合も実務ではありえるんでしょうか