농장/Django

[Django] 테이블 다시 만들기, 테이블 컬럼 변경하기, 테이블 바꾸기

귤발자 2020. 11. 30. 21:09
728x90
반응형

0. 빈 테이블 수정

python manage.py makemigrations
python manage.py migrate

빈 테이블 수정 반영시 이 명령을 실행해주면 되지만,

테이블에 행들이 이미 들어가있는 경우, =테이블과 그 안의 내용까지 전부 다시 입력시켜야 하는 경우는 그럴 수 없다. 싹다 다시 해야한다. 다음 방법을 따라해보라.

 

 

 

1. 테이블 삭제

테이블을 삭제하기 위해 sql을 다뤄야하는데, 두가지 방법이 있다. 하나는 직접 sql커맨드를 사용하는 것이고 다른 하나는 GUI툴을 사용하는 것.

 

 

Downloads - DB Browser for SQLite

(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.1) for Windows: Windows PortableApp There is a PortableApp available, but it’s still the previous (3.12.0) release version. It should be updated to 3.12.1 over the next few

sqlitebrowser.org

나는 DB browser for SQLite 을 사용한다. 툴 사용법은 쉬우니 sql커맨드를 사용하는 방법만 설명하겠다.

 

 

1-1) sql 커맨드(콘솔) 이용

sqlite-shell-win32-x86-3081002.zip
0.30MB

 

sqlite shell exe 파일을 Scripts 폴더에 넣고 가상환경에서 sql 커맨드 열기

$ python manage.py dbshell

테이블 확인 후,

.tables

테이블 삭제 DROP 명령 실행

drop table [삭제할 테이블명];

 

 

2. migrations 폴더 내 파일 삭제(init 제외)

이때 init은 삭제하면 안된다.

3. 마이그레이션 재생성

$ python manage.py makemigrations [appname]
$ python manage.py migrate [appname]

재생성인지먼지는 잘모르고 뒤에 앱이름은 안붙여도 상관없다.

python manage.py sqlmigrate [appname] 0001

 

그런다음 아래 명령으로 나온 CREATE TABLE 명령을 전부 복사한다.

$ python manage.py sqlmigrate [appname] 0001

 

6. 복사한 CREATE TABLE 쿼리로 테이블 생성

다시 sql 커맨드를 열어서 명령을 실행해준다.

728x90
반응형