migrate 3

[Laravel 9 + Mysql] unique key, primary key, foreign key 등 제약키 수정방법

안녕하세요. 오늘은 migration 수정하면서 데이터를 날려버릴 수도 없고(!!!) 어떻게든 제약키를 해제하는 방법을 찾아 방황한 에러노트입니다. 재밌게도 laravel은 create는 참 쉬운데 수정은 일부러 쉽지 않게 만들어졌다는 사실, 알고계신가요? 저도 삽질하면서 이번에 새로 알게 되었답니다. 우선, 수정을 하는 방법은 크게 나누어보자면 2가지 입니다. 1. 쿼리문을 통해 직접적으로 데이터베이스에서 수정하는 방법 직접 쿼리문을 작성하여 수정하는 방식. 제약조건이 다양할 경우, 주변 제약조건도 함께 삭제하는 등 수정의 순서가 있어 복잡함. Mysql, Oracle 등등 문법이 조금씩 다르기 때문에 그에 대한 지식이 요구됨. 2. migration을 통해 수정하는 방법 laravel 내에서 수정이 ..

php artisan migrate error / SQLSTATE[42000]: Syntax error or access violation: 1170 BLOB/TEXT column 'u_id' used in key specification without a key length (SQL: alter table `posts` add unique `posts_u_id_unique`(`u_id`))

오늘은 migation과 씨름 중인 에러노트입니다. MAC valet과 homebrew를 통해 라라벨 설치부터 깃허브 연동, VS Code 연결 셋팅까지 모두 마치고 드디어 DB부터 시작중입니다. 수많은 에러들을 만났지만, 이 친구는 앞으로도 자주 만날 것 같아서 써두려고 합니다. 이외의 다른 에러도 있으니 참고 바랍니다 :) 1170 error의 경우, 번역기를 돌렸을 때 다음과 같이 해석됩니다. [error 내용] SQLSTATE[42000]: Syntax error or access violation: 1170 BLOB/TEXT column 'u_id' used in key specification without a key length (SQL: alter table `posts` add uniqu..

php artisan migrate 오류 해결 Illuminate\Database\QueryException SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

오늘은 홈스테드와 베이그런트를 사용하여 DB를 구축하던 중 6시간 동안 서치하고 삽질한 끝에 찾아낸 해결방법을 가져왔습니다. 혹여나 저처럼 homestead나 vagrant ssh를 통해 터미널(혹은 git bash) 연결을 하여 php를 사용하는 경우, 1045 에러를 해결하는 연결방법을 설명드릴 터이니 참고가 되시길 바랍니다. 여러분의 시간은 소중하니까요 :D 저의 에러 상황 재현 더보기 먼저 당시의 제 오류 상황을 재현 해보자면, 권한 부여를 확인 후 database.php와 .env에 로컬에서의 mysql 기준으로 셋팅 하였습니다. (네, 바로 이게 문제였습니다..ㅎㅎ) 하지만 오류는 여전하였고, 알고 보니 Homestead를 사용하는 경우, 이쪽 세팅의 문제가 아님을 알게 되었습니다. 서치해보면..