기존에 있는 Django 테이블에 컬럼을 추가하는 작업을 진행하였습니다. 이 후 DB Migration 을 해도 반영이 안되어서 제목과 같은 오류를 출력합니다. 이러한 경우에는 수동으로 해당 테이블에 컬럼을 추가하면 해결 되었습니다.
우선 Django 에서 DB 에 직접 접속하는 방법은 다음과 같습니다.
$ python manage.py dbshell
Welcome to the MariaDB monitor. Commands end with;
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
MariaDB [dbname]>
Linux 에서 Mysql 접속하여 테이블과 명령어 등을 자동완성해 주는 Mycli
를 활용하여 접속하는 방법은 다음과 같습니다.
$ sudo mycli -u USERNAME -h localhost DBNAME
[sudo] password for USERNAME:
Connecting to socket /var/run/mysqld/mysqld.sock, owned by user mysql
Password:
추가한 컬럼명과 속성은 다음과 같습니다.
class Table(models.Model):
...
column_name = models.CharField(max_length=150)
MySQL 에 접속한 뒤, 수동으로 컬럼 내용을 추가하는 명령어는 다음과 같습니다.
MariaDB USERNAME@localhost:DBNAME> ALTER TABLE app_table ADD COLUMN colum_name VARCHAR(150);
You're about to run a destructive command.
Do you want to proceed? (y/n): y
위 내용과같이 작업을 하고나면 나머지는 정상적으로 동작하는 것을 확인 할 수 있습니다.