πŸ”‘ ОбновлСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Flask: stamp head ΠΌΠ΅Ρ‚ΠΎΠ΄

Команда "flask db stamp head" ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки ΠΌΠ΅Ρ‚ΠΊΠΈ (stamp) Π½Π° послСдний ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ сцСнарий (migration script) Π² Flask ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с использованиСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Flask-Migrate. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ устанавливаСтС ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ этой ΠΌΠ΅Ρ‚ΠΊΠΈ. ΠœΠ΅Ρ‚ΠΊΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ для ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ вСрсии вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "flask db stamp head":

    flask db stamp head
    
Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° послСдний ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ сцСнарий.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π“Π»ΡƒΠ±ΠΈΠ½Π°: CS ΡΡ‚Π°Ρ€ΡˆΠ°Ρ школа

Π‘Ρ‚ΠΈΠ»ΡŒ обучСния: Активный

Π‘Ρ‚ΠΈΠ»ΡŒ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ: БократичСский

Π‘Ρ‚ΠΈΠ»ΡŒ излоТСния: ΠŸΠΎΠΎΡ‰Ρ€ΡΡŽΡ‰ΠΈΠΉ

ΠœΠ΅Ρ‚ΠΎΠ΄ рассуТдСния: ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π½ΠΎ-слСдствСнный

Π­ΠΌΠΎΠ΄Π·ΠΈ: Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹

Π―Π·Ρ‹ΠΊ: Русский

"flask db stamp head": ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ "flask db stamp head" Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ Flask, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° послСднСй вСрсии.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСн Flask ΠΈ SQLAlchemy. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для ΠΈΡ… установки:

pip install flask SQLAlchemy

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ Π² Flask

Π’ прилоТСниях Flask, ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… - это способ привСсти структуру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² соотвСтствиС с модСлями Π΄Π°Π½Π½Ρ‹Ρ… вашСго прилоТСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ столбцы вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ структуру.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с миграциями Flask ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Alembic. Alembic прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ вСрсии ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ измСнСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ нСобходимости.

Команда "flask db stamp head"

Команда "flask db stamp head" ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки ΠΌΠ΅Ρ‚ΠΊΠΈ вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° послСднСй вСрсии ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, имСя Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ структуру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "flask db stamp head", ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ внСсли измСнСния Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… вашСго прилоТСния, создали Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈΡ… ΠΊ вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° послСднСй вСрсии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ синхронизированной с вашими модСлями Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "flask db stamp head"

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "flask db stamp head". ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° послСднСй вСрсии. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Flask.
  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
flask db stamp head

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° устанавливаСт ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° послСднСй вСрсии ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваша Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° "flask db stamp head" Π½Π΅ выполняСт ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Она Ρ‚ΠΎΠ»ΡŒΠΊΠΎ устанавливаСт ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° послСднСй вСрсии ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "flask db upgrade", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния ΠΊ вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "flask db stamp head" Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ Flask. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки ΠΌΠ΅Ρ‚ΠΊΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° послСднСй вСрсии ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрСли ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° "flask db stamp head" Ρ‚ΠΎΠ»ΡŒΠΊΠΎ устанавливаСт ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ Π½Π΅ выполняСт ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ всС Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "flask db upgrade", Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния вступили Π² силу.

НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для вас! Если Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вопросы, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ….

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

How to Add Flask-Migrate to an Existing Flask-SQLAlchemy Project

How to Handle the Database Migrations with Alembic | Flask and Python Backend 10

How To Migrate Database With Flask - Flask Fridays #11

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”‘ ОбновлСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Flask: stamp head ΠΌΠ΅Ρ‚ΠΎΠ΄

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ flask gevent для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?