我尝试使用django 2的
postgresql 10数据库当我跑
时python manage.py makemigrations
python manage.py migrate
输出表明数据库运行良好。 但是当我尝试创建一个supseruser
时python manage.py createsuperuser
控制台实际挂起如下:
root@ca80209360d2:/app# python manage.py createsuperuser
Username (leave blank to use 'root'): tdy
Email address:
Password:
Password (again):
所以在我输入密码后,它没有打印出成功创建的超级用户,就像我使用sqlite时一样..
我必须按Ctrl + C:
^CTraceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/kombu/utils/functional.py", line 36, in __call__
return self.__value__
AttributeError: 'ChannelPromise' object has no attribute '__value__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/kombu/utils/functional.py", line 333, in retry_over_time
return fun(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/kombu/connection.py", line 261, in connect
return self.connection
File "/usr/local/lib/python3.5/site-packages/kombu/connection.py", line 802, in connection
self._connection = self._establish_connection()
File "/usr/local/lib/python3.5/site-packages/kombu/connection.py", line 757, in _establish_connection
conn = self.transport.establish_connection()
File "/usr/local/lib/python3.5/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
conn.connect()
File "/usr/local/lib/python3.5/site-packages/amqp/connection.py", line 282, in connect
self.transport.connect()
File "/usr/local/lib/python3.5/site-packages/amqp/transport.py", line 109, in connect
self._connect(self.host, self.port, self.connect_timeout)
File "/usr/local/lib/python3.5/site-packages/amqp/transport.py", line 150, in _connect
self.sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/site-packages/django/core/management/__init__.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 59, in execute
return super().execute(*args, **options)
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 335, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 179, in handle
self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/models.py", line 161, in create_superuser
return self._create_user(username, email, password, **extra_fields)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/models.py", line 144, in _create_user
user.save(using=self._db)
File "/usr/local/lib/python3.5/site-packages/django/contrib/auth/base_user.py", line 73, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/db/models/base.py", line 729, in save
force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python3.5/site-packages/django/db/models/base.py", line 769, in save_base
update_fields=update_fields, raw=raw, using=using,
File "/usr/local/lib/python3.5/site-packages/django/dispatch/dispatcher.py", line 178, in send
for receiver in self._live_receivers(sender)
File "/usr/local/lib/python3.5/site-packages/django/dispatch/dispatcher.py", line 178, in <listcomp>
for receiver in self._live_receivers(sender)
File "/app/api/models.py", line 17, in create_auth_token
task.delay(verification_link, instance.email)
File "/usr/local/lib/python3.5/site-packages/celery/app/task.py", line 413, in delay
return self.apply_async(args, kwargs)
File "/usr/local/lib/python3.5/site-packages/celery/app/task.py", line 536, in apply_async
**options
File "/usr/local/lib/python3.5/site-packages/celery/app/base.py", line 737, in send_task
amqp.send_task_message(P, name, message, **options)
File "/usr/local/lib/python3.5/site-packages/celery/app/amqp.py", line 554, in send_task_message
**properties
File "/usr/local/lib/python3.5/site-packages/kombu/messaging.py", line 181, in publish
exchange_name, declare,
File "/usr/local/lib/python3.5/site-packages/kombu/connection.py", line 494, in _ensured
return fun(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/kombu/messaging.py", line 187, in _publish
channel = self.channel
File "/usr/local/lib/python3.5/site-packages/kombu/messaging.py", line 209, in _get_channel
channel = self._channel = channel()
File "/usr/local/lib/python3.5/site-packages/kombu/utils/functional.py", line 38, in __call__
value = self.__value__ = self.__contract__()
File "/usr/local/lib/python3.5/site-packages/kombu/messaging.py", line 224, in <lambda>
channel = ChannelPromise(lambda: connection.default_channel)
File "/usr/local/lib/python3.5/site-packages/kombu/connection.py", line 819, in default_channel
self.ensure_connection()
File "/usr/local/lib/python3.5/site-packages/kombu/connection.py", line 405, in ensure_connection
callback)
File "/usr/local/lib/python3.5/site-packages/kombu/utils/functional.py", line 345, in retry_over_time
sleep(1.0)
KeyboardInterrupt
请帮忙。 谢谢
编辑: 下面是我用来设置环境的docker-compose.yml
version: "3.4"
services:
# PostgreSQL database
db:
# official postgres:9 with a sql file added to init django database
image: pg9init
hostname: db
environment:
- PGDATA=/var/lib/postgresql/data/pgdata
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data/pgdata
- pgbackup:/pg_backups
redis:
image: redis:3
hostname: redis
rabbit:
image: rabbitmq:3
hostname: rabbit
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=mypass
ports:
- "5672:5672" # forward this port for debugging
- "15672:15672" # here can access rabbitmq management plugin
django:
# from python:3.5 with all django requirements installed
image: djangoenvimg
command: ./run_django.sh
environment:
- DJANGO_ENV=prod
- DOCKER_CONTAINER=1
volumes:
# mount current directory inside container, to avoid the need of re-building the image every time django updates.
- .:/app
ports:
- "8000:8000"
# instruct all 5 instances of djangoserver containers to share port 8000 via a load-balanced network
# called backend
depends_on:
- db
- rabbit
# Celery worker
worker:
image: djangoenvimg
command: ./run_celery.sh
environment:
- DJANGO_ENV=prod
- DOCKER_CONTAINER=1
volumes:
- .:/app
- /home/xx/Android/Sdk:/Sdk:ro
depends_on:
- rabbit
- redis
- db
# Creates the volume for postgresql database to preserve data during multiple container sessions
volumes:
pgdata:
pgbackup: