Bootcamp: ์œˆ๋„์šฐ์— ์„ค์น˜ํ•˜๊ธฐ

์— ๋งŒ๋“  2017๋…„ 12์›” 19์ผ  ยท  14์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vitorfs/bootcamp

์•ˆ๋…•,

๋‚ด Windows PC์— ์„ค์น˜ํ–ˆ์ง€๋งŒ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

python manage.py migrate

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 347, in execute
    django.setup()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\registry.py", line 112, in populate
    app_config.import_models()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\allan\Documents\progetti\bootcamp\bootcamp\activities\models.py", line 14, in <module>
    class Activity(models.Model):
  File "C:\Users\allan\Documents\progetti\bootcamp\bootcamp\activities\models.py", line 26, in Activity
    user = models.ForeignKey(User)

TypeError: __init__() missing 1 required positional argument: 'on_delete'

image

image

์‹œ๊ฐ„์„ ์žƒ์—ˆ์„ ๋•Œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

Support help wanted question

๋ชจ๋“  14 ๋Œ“๊ธ€

์ด ์˜ค๋ฅ˜๋Š” django==2.0์ผ ๋•Œ ๋ฐœ์ƒํ•˜๋ฉฐ, ํ˜„์žฌ Bootcamp๋Š” ํ•ด๋‹น ๋ฒ„์ „์˜ Django์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๊ฑฐํ•˜๊ณ  ์ด์ „ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. django==1.11.x๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์€ ์•„์นจ์ž…๋‹ˆ๋‹ค @sebastian-code ,

django๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ์ด์ œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Traceback (most recent call last):
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 213, in ensure_connection
    self.connect()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 198, in get_new_connection
    conn = Database.connect(**conn_params)
sqlite3.OperationalError: unable to open database file

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\commands\migrate.py", line 83, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\executor.py", line 20, in __init__
    self.loader = MigrationLoader(self.connection)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\loader.py", line 52, in __init__
    self.build_graph()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\loader.py", line 209, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\recorder.py", line 65, in applied_migrations
    self.ensure_schema()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\recorder.py", line 52, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 254, in cursor
    return self._cursor()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 229, in _cursor
    self.ensure_connection()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 213, in ensure_connection
    self.connect()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 213, in ensure_connection
    self.connect()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 198, in get_new_connection
    conn = Database.connect(**conn_params)
django.db.utils.OperationalError: unable to open database file

image

์•ˆ๋…•ํ•˜์„ธ์š” @Allan-Nava ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ๊ณผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ถ€๋ถ„์€ ์–ด๋–ป๊ฒŒ ํ•˜๊ณ  ๊ณ„์‹ญ๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @sebastian-code, ์ œ ๊ฐœ์ธ PC ์œˆ๋„์šฐ๊ฐ€ ์žˆ๋Š” ์ œ ์ฒซ django ์•ฑ์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ Docker๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ PostgreSQL์˜ ๋กœ์ปฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋œ DB ์„œ๋ฒ„ ๋˜๋Š” ์ผ์ข…์˜ VM์„ ํƒ‘์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SQLite๋ฅผ ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์‰ฌ์šด ์˜ต์…˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ SQLite๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด URL ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ ˆํ•œ ํ˜•์‹์˜ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ์†Œ๋กœ .env ํŒŒ์ผ ๋‚ด๋ถ€์— DATABASE_URL ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜์‹ญ์‹œ์˜ค. env.example ํŒŒ์ผ์—์„œ ์˜ˆ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ conf์™€ ํ•จ๊ป˜ .env๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

# PostgreSQL conf
# POSTGRES_PASSWORD=mysecretpass
# POSTGRES_USER=my_super_user
# POSTGRES_DB=bootcamp
# DATABASE_URL=postgresql://my_super_user:[email protected]:5432/bootcamp

# Main environmental variables
DEBUG=True
SECRET_KEY=s3cr3t_key
ALLOWED_HOSTS=*
# URL to have SQLite example and to pass TravisCI
DATABASE_URL=sqlite:////bootcamp/db.sqlite3
# URL for Redis
# REDIS_URL=redis://redis_ip_address:port

๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

C:\Users\allan\Documents\progetti\bootcamp>python manage.py migrate
Traceback (most recent call last):
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 213, in ensure_connection
    self.connect()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 198, in get_new_connection
    conn = Database.connect(**conn_params)
sqlite3.OperationalError: unable to open database file

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\commands\migrate.py", line 83, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\executor.py", line 20, in __init__
    self.loader = MigrationLoader(self.connection)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\loader.py", line 52, in __init__
    self.build_graph()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\loader.py", line 209, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\recorder.py", line 65, in applied_migrations
    self.ensure_schema()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\migrations\recorder.py", line 52, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 254, in cursor
    return self._cursor()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 229, in _cursor
    self.ensure_connection()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 213, in ensure_connection
    self.connect()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 213, in ensure_connection
    self.connect()
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\allan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 198, in get_new_connection
    conn = Database.connect(**conn_params)
django.db.utils.OperationalError: unable to open database file

image

์ฃผ์†Œ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. SQLite์˜ ๊ฒฝ์šฐ Django๋Š” URI ํ˜•์‹์œผ๋กœ ํ‘œํ˜„๋œ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ ๋‚ด๋ถ€์˜ SQLite ํŒŒ์ผ์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

@sebastian-code ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

image

์ด ๋ช…๋ น์œผ๋กœ django 1.11์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ pip install -U -r requirements/local.txt

๋•๋ถ„์— ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค!

2018-01-12 11:17 GMT+01:00 jackengine ์•Œ๋ฆผ @github.com :

์ด ๋ช…๋ น์œผ๋กœ django 1.11์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? pip install -U -r
์š”๊ตฌ ์‚ฌํ•ญ/local.txt

โ€”
์—ด๊ธฐ/๋‹ซ๊ธฐ ์ƒํƒœ๋ฅผ ์ˆ˜์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธ
https://github.com/vitorfs/bootcamp/issues/138#issuecomment-357199201 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AVdMg5tftf9BMLRv8opKHg_ngou7E-Zpks5tJzE2gaJpZM4RHiIY
.

@sebastian-code ํ• ์บ์‹œ์— django 2.x๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ pip๊ฐ€ django 1.9๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋Š” ๋ฐฉ๋ฒ• pip install -U -r requirements/local.txt

์•ˆ๋…•ํ•˜์„ธ์š” @jackengine ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ์„ค์น˜๋˜๋ฉด ์ˆ˜๋™์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ์‚ญ์ œํ•œ ๋‹ค์Œ django๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋˜ ์›ํ•˜๋Š” ํŠน์ • ๋ฒ„์ „์„ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด ์กฐ์–ธ์€ django v1.9์™€ ํ•จ๊ป˜ ์ง„ํ–‰๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฉฐ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. LTS์ธ django 1.11์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

Allan-Nava picture Allan-Nava  ยท  9์ฝ”๋ฉ˜ํŠธ

sebastian-code picture sebastian-code  ยท  11์ฝ”๋ฉ˜ํŠธ

mwanjajoel picture mwanjajoel  ยท  5์ฝ”๋ฉ˜ํŠธ

phamminhtris picture phamminhtris  ยท  12์ฝ”๋ฉ˜ํŠธ

norouzzadeh picture norouzzadeh  ยท  3์ฝ”๋ฉ˜ํŠธ