プログラミング初心者です。うまく質問できないのですがよろしくお願いします。
ターミナルを使ってmysqlでテーブルを作成した後、djangoのmodels.pyでクラスと変数を書き、マイグレーションをしたら、django.db.utils.OperationalError: (1050, "Table 'station' already exists")とエラーが出ました。
どうすれば、マイグレーションできるでしょうか?
あとそもそも普通はモデルでテーブルをつくってマイグレーションでデータベースに反映させますが、ターミナルで直接テーブル作成→モデルを作るというやりかたで誤差なくできるのでしょうか?
models
1from django.db import models 2 3# Create your models here. 4class ticket_gate(models.Model): 5 class Meta: 6 db_table = 'ticket_gate' 7 8 id = models.IntegerField(primary_key=True) 9 name = models.CharField(max_length=255) 10 11 def __str__(self): 12 return self.name 13 14class station(models.Model): 15 class Meta: 16 db_table = 'station' 17 18 id = models.IntegerField(primary_key=True) 19 name = models.CharField(max_length=255) 20 ticket_gates = models.ManyToManyField(ticket_gate, verbose_name='改札口') 21 22 def __str__(self): 23 return self.name 24 25 26class cafe_info(models.Model): 27 class Meta: 28 db_table = 'cafe_info' 29 app_label = 'cafelog' 30 31 id = models.IntegerField(primary_key=True) 32 name = models.CharField(max_length=255) 33 created_at = models.DateTimeField(auto_now_add = True) 34 chain_id = models.IntegerField(default=0) 35 updated_at = models.DateTimeField(auto_now = True) 36 stations = models.ManyToManyField(station, verbose_name='最寄駅') 37 ticket_gates = models.ManyToManyField(ticket_gate, verbose_name='改札口') 38 def __str__(self): 39 return self.name 40 41class chain(models.Model): 42 class Meta: 43 db_table = 'chain' 44 45 id = models.IntegerField(primary_key=True) 46 cafe_info = models.OneToOneField(cafe_info, verbose_name='カフェ情報', 47 on_delete=models.CASCADE) 48 name = models.CharField(max_length=255) 49 50 def __str__(self): 51 return self.name 52 53class train_line(models.Model): 54 class Meta: 55 db_table = 'train_line' 56 57 id = models.IntegerField(primary_key=True) 58 name = models.CharField(max_length=255) 59 stations = models.ManyToManyField(station, verbose_name='最寄駅') 60 61 def __str__(self): 62 return self.name 63 64 65 66 67
sql
1# create database nomad; 2 3 4drop table if exists cafe_info; 5 6create table if not exists cafe_info( 7 id int(11) primary key auto_increment, 8 name varchar(255) not null, 9 chain_id int(11) not null default '0', 10 created_at datetime not null default current_timestamp, 11 updated_at datetime not null default current_timestamp on update current_timestamp 12 foreign key fk_chain (chain_id) references chain(id) 13); 14 15insert into cafe_info (id, name, chain_id, created_at) values 16 (30, 'マクドナルド南新宿店', 12,'2019-09-11 10:00:00'), 17 (31, 'ドトール新宿南口店', 2, '2019-09-11 11:00:00'), 18 (32, '但馬珈琲店新宿南口店', 25, '2019-09-11 11:30:00'); 19 20 21drop table if exists chain; 22 23create table if not exists chain( 24 id int(11) primary key auto_increment, 25 name varchar(255) not null 26 ); 27 28 29insert into chain (name) values 30 ("スターバックス"), 31 ("ドトール"), 32 ("タリーズ"), 33 ("エクセシオール"), 34 ("ルノアール"), 35 ("ミヤマカフェ"), 36 ("ベローチェ"), 37 ("上島珈琲店"), 38 ("猿田彦珈琲店"), 39 ("星乃珈琲店"), 40 ("コメダ珈琲店"), 41 ("マクドナルド"), 42 ("モスバーガー"), 43 ("ファーストキッチン"), 44 ("バーガーキング"), 45 ("ケンタッキー"), 46 ("デニーズ"), 47 ("ジョナサン"), 48 ("ロイヤルホスト"), 49 ("ガスト"), 50 ("バグース"), 51 ("TSUTAYA"), 52 ("サンマルク"), 53 ("プロント"), 54 ("但馬珈琲店"), 55 ("びっくりドンキー"), 56 ("ロッテリア"), 57 ("珈琲西武"), 58 ("ピース"), 59 ("バーミアン"), 60 ("ミスタードーナツ"), 61 ("集"), 62 ("カフェ ド クリエ"), 63 ("椿屋カフェ"), 64 ("セガフレード"); 65 66drop table if exists train_line; 67 68create table if not exists train_line( 69 id int(11) primary key auto_increment, 70 name varchar(255) not null 71 ); 72 73insert into train_line (name) values 74 ("山手線"), 75 ("JR埼京線"), 76 ("JRりんかい線"), 77 ("JR川越線"), 78 ("JR中央本線"), 79 ("JR総武本線"), 80 ("JR湘南新宿ライン"), 81 ("JR東海道本線"), 82 ("JR宇都宮線〔東北本線〕・JR上野東京ライン"), 83 ("京王線"), 84 ("京王新線"), 85 ("小田急小田原線/小田急江ノ島線"), 86 ("東京メトロ丸ノ内線"), 87 ("都営大江戸線(環状部)/都営大江戸線(放射部)"), 88 ("都営新宿線"); 89 90drop table if exists station; 91 92create table if not exists station( 93 id int(11) primary key auto_increment, 94 name varchar(255) not null 95 ); 96 97 98insert into station (name) values 99 ("新宿"), 100 ("新宿三丁目"), 101 ("新宿御苑前"), 102 ("渋谷"), 103 ("池袋"), 104 ("西新宿"), 105 ("西新宿五丁目"); 106 107drop table if exists ticket_gate; 108 109create table if not exists ticket_gate( 110 id int(11) primary key auto_increment, 111 name varchar(255) not null 112 ); 113 114insert into ticket_gate (name) values 115 ("南口"), 116 ("新南口"), 117 ("東口"), 118 ("西口"), 119 ("東南口"); 120 121drop table if exists train_line_station; 122 123create table if not exists train_line_station( 124 id int(11) primary key auto_increment, 125 train_line_id int(11) not null default '0', 126 station_id int(11) not null default '0', 127 foreign key fk_train_line (train_line_id) references train_line(id), 128 foreign key fk_station (station_id) references station(id) 129 ); 130 131drop table if exists cafe_info_station; 132 133create table if not exists cafe_info_station ( 134 id int(11) primary key auto_increment, 135 cafe_info_id int(11) not null default '0', 136 station_id int(11) not null default '0', 137 foreign key fk_cafe_info (cafe_info_id) references cafe_info(id), 138 foreign key fk_station (station_id) references station(id) 139 ); 140 141 142 143drop table if exists cafe_info_ticket_gate; 144 145create table if not exists cafe_info_ticket_gate ( 146 id int(11) primary key auto_increment, 147 cafe_info_id int(11) not null default '0', 148 ticket_gate_id int(11) not null default '0', 149 foreign key fk_cafe_info (cafe_info_id) references cafe_info(id), 150 foreign key fk_ticket_gate (ticket_gate_id) references ticket_gate(id) 151 ); 152 153drop table if exists station_ticket_gate; 154 155create table if not exists station_ticket_gate ( 156 id int(11) primary key auto_increment, 157 station_id int(11) not null default '0', 158 ticket_gate_id int(11) not null default '0', 159 foreign key fk_station (station_id) references station(id), 160 foreign key fk_ticket_gate (ticket_gate_id) references ticket_gate(id) 161 );