사전작업

virtualenv로 django를 설치한 경우

Pycharm 내의 터미널을 사용하실 경우 선택된 interpreter에 따라 자동으로 변경되므로 아래와 같은 작업을 할 필요가 없습니다.

예시) djangoDjango라는 virtualenv를 생성한 경우

$ cd virtualenv
$ source bin/activate
(virtualDjango) $         # virtualDjango라는 virtualenv 터미널에 접속한 상태
# virtualenv 접속해제는 deactivate
$ 프로젝트로 이동

터미널

settings 파일이 쪼개져 있지 않은 경우

$ python3 manage.py inspectdb > models.py (아무이름이나 가능)

settings 파일이 쪼개져 있는 경우

$ python3 manage.py inspectdb --settings=djangotest(프로젝트이름).settings.dev > models.py (아무이름이나 가능)

결과

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#   * Rearrange models' order
#   * Make sure each model has one field with primary_key=True
#   * Make sure each ForeignKey has `on_delete` set to the desired behavior.
#   * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
# Feel free to rename the models, but don't rename db_table values or field names.
from __future__ import unicode_literals

from django.db import models



class TCart(models.Model):
    cart_no = models.BigAutoField(primary_key=True)
    user_no = models.BigIntegerField()
    guest_session_key = models.CharField(max_length=-1)
    save_mileage_amount = models.BigIntegerField()
    delivery_amount = models.DecimalField(max_digits=16, decimal_places=2)
    coupon_sale_amount = models.DecimalField(max_digits=16, decimal_places=2)
    coupon_save_amount = models.DecimalField(max_digits=16, decimal_places=2)
    pay_mileage = models.BigIntegerField()
    pay_deposit = models.BigIntegerField()
    device_type = models.IntegerField()
    insert_timestamp = models.DateTimeField()
    updated_timestamp = models.DateTimeField()
    is_deleted = models.CharField(max_length=1)

    class Meta:
        managed = False
        db_table = 't_cart'
        unique_together = (('user_no', 'guest_session_key'),)

....

주의사항

Django로 가져온 테이블의 컬럼 필드와 postgreSQL 내 테이블의 컬럼 필드가 다를 경우가 존재합니다. (예를 들어, varchar(20)인데 text필드로 migrate가 되었다던지..) 따라서 생성한 후 확인 하는 것을 권장합니다.

+ Random Posts