質問編集履歴

4 Qiitaに移行

hnkyi

hnkyi score 8

2018/05/18 15:25  投稿

Djangoで初期のmigrateが出来ない。(`disk I/O error`)
# 事象
タイトルの通りです。
Djangoで新規プロジェクトを作成し、初期のmigrateをすると、`disk I/O error)が発生します。
元々ローカルで開発を行っており、あらかた動いたのでクラウド環境に移そうと考えていました。
移す前に、クラウド環境でdjangoプロジェクトが作れて実行確認できるか試したところ、今回の事象が発生しました。
# 環境
当該事象が発生するクラウド環境は以下の通りです。
```sh
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
$ python -V
Python 3.6.5
$ pip list | grep Django
Django (2.0.5)
$ sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
```
# 手順
大きく2つの手順を試しました。
- いきなり`migrate`をする
- `makemigtations`をしてから、`migrate`をする
前述した通り、どちらの手順でも`disk I/O error`という不穏なエラーが発生します...
## ①いきなりmigrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 55, in ensure_schema
   editor.create_model(self.Migration)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 91, in migrate
   self.recorder.ensure_schema()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 57, in ensure_schema
   raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table (disk I/O error)
```
## ②makemigrationsしてから、migrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py makemigrations
No changes detected
$
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
 Applying contenttypes.0001_initial...Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 117, in migrate
   state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
   state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
   state = migration.apply(state, schema_editor)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
```
# 試した事
### SQLiteのバージョンアップ
ローカルで動いていたバージョン(3.19.3)や、最新版(3.23.1)に変更してみましたが、同様の事象となりました。
### SQLiteへの接続
普通に繋がりました。
テーブルは、①の時は`django_migrations`だけ、②の時は`django_content_type`と`django_migrations`だけあるような状況。
以下、接続状況。
```sh
$ sqlite3 db.sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
sqlite> .tables
django_content_type django_migrations 
```
### SQLiteへのCreate table/Insert/Select
@hayataka2049 様からの質問を受け、試しましたところ、手動でのCreate table/Insert/Selectは正常に処理できました。
```sh
$ sqlite3 db.sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
sqlite> create table dummy (id, name);
sqlite> .tables
django_migrations django_session    dummy           
sqlite>
sqlite> insert into dummy (id, name) values (1, 'hoge');
sqlite>
sqlite> select * from dummy;
1|hoge
```
その他諸々、一日かけて調べて分からなかったため、tetatailにて質問させていただく事にしました。
よろしくお願い致します。
よろしくお願い致します。
----
Teratailの文字数制限のせいで、書きたい情報が書けなかったので、Qiitaにも同じの書きました。
こちらも参考にしていただけると幸いです。
https://qiita.com/hnkyi/items/5f00d9eb5d7a91ef0b59
  • Django

    1613 questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • Python 3.x

    9841 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

3 @hayataka2049様からの質問の回答

hnkyi

hnkyi score 8

2018/05/18 13:22  投稿

Djangoで初期のmigrateが出来ない。(`disk I/O error`)
# 事象
タイトルの通りです。
Djangoで新規プロジェクトを作成し、初期のmigrateをすると、`disk I/O error)が発生します。
元々ローカルで開発を行っており、あらかた動いたのでクラウド環境に移そうと考えていました。
移す前に、クラウド環境でdjangoプロジェクトが作れて実行確認できるか試したところ、今回の事象が発生しました。
# 環境
当該事象が発生するクラウド環境は以下の通りです。
```sh
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
$ python -V
Python 3.6.5
$ pip list | grep Django
Django (2.0.5)
$ sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
```
# 手順
大きく2つの手順を試しました。
- いきなり`migrate`をする
- `makemigtations`をしてから、`migrate`をする
前述した通り、どちらの手順でも`disk I/O error`という不穏なエラーが発生します...
## ①いきなりmigrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 55, in ensure_schema
   editor.create_model(self.Migration)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 91, in migrate
   self.recorder.ensure_schema()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 57, in ensure_schema
   raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table (disk I/O error)
```
## ②makemigrationsしてから、migrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py makemigrations
No changes detected
$
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
 Applying contenttypes.0001_initial...Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 117, in migrate
   state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
   state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
   state = migration.apply(state, schema_editor)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
```
# 試した事
### SQLiteのバージョンアップ
ローカルで動いていたバージョン(3.19.3)や、最新版(3.23.1)に変更してみましたが、同様の事象となりました。
### SQLiteへの接続
普通に繋がりました。
テーブルは、①の時は`django_migrations`だけ、②の時は`django_content_type`と`django_migrations`だけあるような状況。
以下、接続状況。
```sh
$ sqlite3 db.sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
sqlite> .tables
django_content_type django_migrations 
```
### SQLiteへのCreate table/Insert/Select  
@hayataka2049 様からの質問を受け、試しましたところ、手動でのCreate table/Insert/Selectは正常に処理できました。  
 
```sh  
$ sqlite3 db.sqlite3  
SQLite version 3.7.17 2013-05-20 00:56:22  
Enter ".help" for instructions  
Enter SQL statements terminated with a ";"  
sqlite>  
sqlite> create table dummy (id, name);  
sqlite> .tables  
django_migrations django_session    dummy             
sqlite>  
sqlite> insert into dummy (id, name) values (1, 'hoge');  
sqlite>  
sqlite> select * from dummy;  
1|hoge  
```  
 
その他諸々、一日かけて調べて分からなかったため、tetatailにて質問させていただく事にしました。
よろしくお願い致します。
  • Django

    1613 questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • Python 3.x

    9841 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

2 体裁修正

hnkyi

hnkyi score 8

2018/05/18 12:19  投稿

Djangoで初期のmigrateが出来ない。(`disk I/O error`)
# 事象
タイトルの通りです。
Djangoで新規プロジェクトを作成し、初期のmigrateをすると、`disk I/O error)が発生します。
元々ローカルで開発を行っており、あらかた動いたのでクラウド環境に移そうと考えていました。
 
移す前に、クラウド環境でdjangoプロジェクトが作れて実行確認できるか試したところ、今回の事象が発生しました。
# 環境
当該事象が発生するクラウド環境は以下の通りです。
```sh
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
$ python -V
Python 3.6.5
$ pip list | grep Django
Django (2.0.5)
$ sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
```
# 手順
大きく2つの手順を試しました。
- いきなり`migrate`をする
- `makemigtations`をしてから、`migrate`をする
前述した通り、どちらの手順でも`disk I/O error`という不穏なエラーが発生します...
## ①いきなりmigrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 55, in ensure_schema
   editor.create_model(self.Migration)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 91, in migrate
   self.recorder.ensure_schema()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 57, in ensure_schema
   raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table (disk I/O error)
```
## ②makemigrationsしてから、migrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py makemigrations
No changes detected
$
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
 Applying contenttypes.0001_initial...Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 117, in migrate
   state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
   state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
   state = migration.apply(state, schema_editor)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
```
# 試した事
- SQLiteのバージョンアップ
 - ローカルで動いていたバージョン(3.19.3)や、最新版(3.23.1)に変更してみましたが、同様の事象となりました。
### SQLiteのバージョンアップ
ローカルで動いていたバージョン(3.19.3)や、最新版(3.23.1)に変更してみましたが、同様の事象となりました。
- SQLiteへの接続
 - 普通に繋がりました。
 - テーブルは、①の時は`django_migrations`だけ、②の時は`django_content_type`と`django_migrations`だけあるような状況。
 - 以下、接続状況。
### SQLiteへの接続
普通に繋がりました。
テーブルは、①の時は`django_migrations`だけ、②の時は`django_content_type`と`django_migrations`だけあるような状況。
以下、接続状況。
```sh
$ sqlite3 db.sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>  
sqlite>
sqlite> .tables
django_content_type django_migrations 
```
その他諸々、一日かけて調べて分からなかったため、tetatailにて質問させていただく事にしました。
よろしくお願い致します。
  • Django

    1613 questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • Python 3.x

    9841 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1 SQLiteへの接続状況を追加

hnkyi

hnkyi score 8

2018/05/18 12:07  投稿

Djangoで初期のmigrateが出来ない。(`disk I/O error`)
# 事象
タイトルの通りです。
Djangoで新規プロジェクトを作成し、初期のmigrateをすると、`disk I/O error)が発生します。
元々ローカルで開発を行っており、あらかた動いたのでクラウド環境に移そうと考えていました。
移す前に、クラウド環境でdjangoプロジェクトが作れて実行確認できるか試したところ、今回の事象が発生しました。
# 環境
当該事象が発生するクラウド環境は以下の通りです。
```sh
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
$ python -V
Python 3.6.5
$ pip list | grep Django
Django (2.0.5)
$ sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
```
# 手順
大きく2つの手順を試しました。
- いきなり`migrate`をする
- `makemigtations`をしてから、`migrate`をする
前述した通り、どちらの手順でも`disk I/O error`という不穏なエラーが発生します...
## ①いきなりmigrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 55, in ensure_schema
   editor.create_model(self.Migration)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 91, in migrate
   self.recorder.ensure_schema()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 57, in ensure_schema
   raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table (disk I/O error)
```
## ②makemigrationsしてから、migrate
```sh
# djangoプロジェクトを新規作成
$ django-admin startproject dummy
# 移動
$ cd dummy
# マイグレーション
$ python manage.py makemigrations
No changes detected
$
$ python manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
 Applying contenttypes.0001_initial...Traceback (most recent call last):
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
 File "manage.py", line 15, in <module>
   execute_from_command_line(sys.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
   utility.execute()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
   self.execute(*args, **cmd_options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
   output = self.handle(*args, **options)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 200, in handle
   fake_initial=fake_initial,
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 117, in migrate
   state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
   state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
   state = migration.apply(state, schema_editor)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/sqlite3/schema.py", line 28, in __exit__
   super().__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/schema.py", line 108, in __exit__
   self.atomic.__exit__(exc_type, exc_value, traceback)
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/transaction.py", line 212, in __exit__
   connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 261, in commit
   self._commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
   raise dj_exc_value.with_traceback(traceback) from exc_value
 File "/root/.virtualenvs/env1/lib/python3.6/site-packages/django/db/backends/base/base.py", line 239, in _commit
   return self.connection.commit()
django.db.utils.OperationalError: disk I/O error
```
# 試した事
- SQLiteのバージョンアップ
   - ローカルで動いていたバージョン(3.19.3)や、最新版(3.23.1)に変更してみましたが、同様の事象となりました。
 - ローカルで動いていたバージョン(3.19.3)や、最新版(3.23.1)に変更してみましたが、同様の事象となりました。
- SQLiteへの接続
 - 普通に繋がりました。
 - テーブルは、①の時は`django_migrations`だけ、②の時は`django_content_type`と`django_migrations`だけあるような状況。
 - 以下、接続状況。
```sh
$ sqlite3 db.sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
sqlite>
sqlite> .tables
django_content_type django_migrations 
```
その他諸々、一日かけて調べて分からなかったため、tetatailにて質問させていただく事にしました。
よろしくお願い致します。
  • Django

    1613 questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • Python 3.x

    9841 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る