9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pipenvのscriptsで複数のコマンドを実行させる

Last updated at Posted at 2019-10-28

きっかけ

Djangoではmigrateファイル生成とマイクレートの実行は別々のコマンドのためマイグレーション時には次の2つを打つ必要性が有ります。


$ pipenv run python manage.py makemigrations
$ pipenv run python manage.py migrate

そこでPipenvにあるオプションであるscriptsを使って一つにまとめようと次の内容を記述しました。

(前略)
[scripts]
dev = "python manage.py runserver"
migrate = "python manage.py makemigrations && python manage.py migrate"

実行すると次のようなエラーが出ます。

% (*'-')<3 pipenv run migrate   

No installed app with label 'python'.
No installed app with label 'manage.py'.
No installed app with label 'migrate'.

解決策

bashのCオプションをつかってコマンドを流し込みます。cオプションは引数の文字列からコマンドを実行してくれるというものになっています。今回書いたものは次にのものになります。

(前略)

[scripts]
dev = "python manage.py runserver"
migrate = "bash -c 'python manage.py makemigrations && python manage.py migrate'"

これで実行してみます。


% (*'-')<3 pipenv run migrate                                                                                                                 [~/dev/socPlProject/yebisu][add/yebsu]
No changes detected
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  No migrations to apply.

問題なく実行されました。

9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?