创建PostgreSQL数据库的问题?

时间:2015-02-19 02:21:25

标签: python sql django postgresql mezzanine

所以我正在学习本教程http://rosslaird.com/blog/building-a-project-with-mezzanine/,以便用Mezzanine构建项目。我对所有这些东西都很陌生(包括Linux和命令行),坦白说我真的不知道自己在做什么。我在本教程的这一部分:

  

在local_settings.py和settings.py文件所在的目录中运行此命令:python manage.py createdb

教程说,在我输入“python manage”命令后,我将“被要求创建一个超级用户,提供用户的详细信息,并回答更多问题”。当我输入命令时,没有出现任何问题。为什么是这样?非常感谢你提前。

3 个答案:

答案 0 :(得分:0)

所以你试图在命令行右侧(终端)运行它?

sudo -u postgres createuser --superuser $USER 
sudo -u postgres psql 
postgres=# \password [enter your username] 
Enter new password: 
Enter it again: 
\q 
createdb $USER;

使用您指定的名称更改$ USER。

答案 1 :(得分:0)

很抱歉,您提供的链接是404(很可能是因为此帖子已超过2年)。

但是......我想我发现它here(有点)......有一些零碎的东西丢失了,这可能让它变得混乱。 " manage.py"应该位于您的" settings.py |之前的父目录中local_settings.py | urls.py"文件驻留。运行manage命令时,请确保您位于相应的目录中。一个简单的lsls -la命令将显示您的文件在目录中的位置。我自己是新手Mezzanine用户。我已经玩了一年了,希望这些信息可以作为在PostgreSQL上设置Mezzanine同时解决你的问题的快速入门指南。

所以......一旦满足以下条件,你就应该能够用PostgreSQL数据库实例创建一个Mezzanine项目。但首先,确保您在没有警告或错误的情况下设置并运行Mezzanine。

对于夹层设置...

前提条件: 你已经安装了Python,pip等......

  1. 获得virtualenv& virtualenvwrapper安装和配置。 pip install virtualenv pip install virtualenvwrapper
  2. 确保为您的虚拟环境添加环境变量。只需指出您希望Mezzanine项目生活的路径以及环境。一个简单的方法是在主目录中编辑你的bashrc。我喜欢将我的virtualenvs与我的工作目录分开,但要根据你的喜好调整路径。只需sudo vi ~/.bashrc然后添加以下内容......
  3. ## Virtualenvwrapper Settings export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/envs/mezzanine/projects/live/here source /usr/local/bin/virtualenvwrapper.sh

    注意:执行i插入文本,完成编辑后输入ctrl + c以退出提示,然后:wq!写入(保存)并退出。然后关闭终端并打开一个新终端,以使新更改生效。如果没有,请重新启动计算机。

    1. 接下来,转到您的项目目录cd ~/envs/mezzanine/projects/live/here并为您的Mezzanine项目创建您的virtualenv(它将在创建后激活)。 mkvirtualenv environment_name
    2. 只需在终端输入deactivate即可停用您的环境。要重新激活您的环境,请键入workon environment_name

      1. 现在您可以安装Mezzanine ...... pip install -U mezzanine

      2. 然后创建您的Mezzanine项目并观察在项目目录中创建的那些文件夹... mezzanine-project project_name

      3. 收集模板&静态文件。 python manage.py collecttemplates python manage.py collectstatic

      4. 现在创建您的数据库实例(默认情况下,如果您在settings.py中没有更改任何内容,那么这将是SQLite。

      5. 确保您已配置ALLOWED_HOSTS并修改settings.py(如果您还没有)。 vi ~/envs/mezzanine/projects/live/here/project_name/project_name/settings.py

      6. ALLOWED_HOSTS = [ '127.0.0.1:8000', 'localhost', 'www.mydomain.com' #if you want to set that too. ]

        注意:请勿忘记保存更改ctrl+c& :wq!

        1. 此时您应该可以返回一个目录并运行您的服务器python manage.py runserver并通过打开浏览器并键入127.0.0.1:8000从端口8000的localhost(环回地址)获取响应。 (确保首先激活您的环境)
        2. 现在为您的PostgreSQL数据库...

          检查一下。它是一个非常好的资源,甚至触及virtualenv。您也可以用Mezzanine(几乎)替换Django引用。最重要的部分是数据库设置部分......

          https://www.digitalocean.com/community/tutorials/how-to-use-postgresql-with-your-django-application-on-ubuntu-14-04

          1. 安装Postgres和依赖项。 (您可能需要在此处以sudo标记-H运行 sudo apt-get install libpq-dev python-dev postgresql postgresql-contrib

          2. 安装psysopg2(也可能需要sudo -Hsudo pip install psycopg2

          3. 登录" postgres"用户: sudo -su postgres

          4. 运行psql shell命令:psql。你应该看到' postgres =#'文本。

          5. 现在,创建数据库(记住用分号结束psql语句;)CREATE DATABASE mydb;

          6. 创建数据库用户:CREATE USER mydbuser WITH PASSWORD 'mypassword';

          7. 设置您的用户角色: ALTER ROLE mydbuser SET client_encoding TO 'utf8'; ALTER ROLE mydbuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE mydbuser SET timezone TO 'UTC';

          8. 8:然后授予数据库用户访问权限:GRANT ALL PRIVILEGES ON DATABASE mydb TO mydbuser;

            1. 输入ctrl + d退出shell,然后输入exit退出postgres用户。

            2. 现在,转到Mezzanine项目工作目录中的settings.py和local_settings.py,然后使用之前创建的凭据修改DATABASES设置... cd ~/envs/mezzanine/projects/live/here/project_name/project_name/然后{ {1}}

            3. vi settings.py

              注意:不要忘记local_settings.py

              1. 现在您可以通过manage.py创建数据库。 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mydb', 'USER': 'mydbuser', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '5432', } }

              2. 上述命令应提示您进行数据库的初始设置以及站点信息,以及创建超级用户。只需按照提示操作即可。要创建其他超级用户,请执行此操作 `python manage.py createsuperuser'

              3. 现在返回项目根python manage.py createdb的目录并运行您的服务器cd ..。现在......你应该在PostgreSQL上运行你的新Mezzanine项目。恭喜! :)

答案 2 :(得分:-1)

教程是错误的。作者对前面使用的Postgres createdb命令和实际的manage.py命令(syncdb感到困惑。

使用实际的Django教程会更好。