> 데이터 베이스 > MySQL 튜토리얼 > Migrating django app from MySQL to Postgres_MySQL

Migrating django app from MySQL to Postgres_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-01 13:13:00
원래의
1351명이 탐색했습니다.

Django

By :manjunath

In this tutorial, we will take a django app backed by MySQL and will convert MySQL database to postgres database. This is useful if we are deploying our app toHerokubecauseHerokuuses standardPostgres

Prerequisites:

  • We assume that you have a running django app with MySQL as a database.
  • Also, your app is running on virtualenv.

Converting MySQL to Postgres:

Let's assume that you have a django app running with MySQL and you want to convert this to Postgres.

1) Install dependenicies:

<code>$ pip install psycopg2$ pip install py-mysql2pgsql</code>
로그인 후 복사

2) Create Postgres database:

<code>postgres@agiliq-Inspiron-N5010:~$ psqlpsql (9.1.11)Type "help" for help.postgres=# create database my_database;CREATE DATABASEpostgres=#</code>
로그인 후 복사

3) Run:

<code>$ py-mysql2pgsql</code>
로그인 후 복사

At initial run this command creates a file namedmysql2pgsql.ymlhaving the below info:

<code>mysql:hostname: localhostport: 3306socket: /tmp/mysql.sockusername: foopassword: bardatabase: your_database_namecompress: falsedestination:postgres:hostname: localhostport: 5432username: foopassword: bardatabase: your_database_name</code>
로그인 후 복사

Update the above configuration file with appropriate database credentials for both 'MySQL' andPostgres.

4) Run:

<code>$ py-mysql2pgsql -v -f mysql2pgsql.yml</code>
로그인 후 복사

The above command will transfer the data fromMySQLdatabase toPostgres.

Note:

  • The above command may raise someIntegrityerrors, but no worries it can be fixed. :)
  • You can also include or exclude some tables check thisHere

5) Be sure to update your databasesettings.pyfile:

<code>DATABASES = {"default": {	"ENGINE": "django.db.backends.postgresql_psycopg2",	"NAME": "your_database_name",	"USER": "your_username",	"PASSWORD": "your_password",	"HOST": "localhost",	"PORT": "5432",}}</code>
로그인 후 복사

6) Verify the correctness by adding some data to your existing database(Postgres).


You can read all ofmanjunath's post, andfollow manjunath on Twitter


Can we help you build amazing apps?Contact us today.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿