Migration 4

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

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

Laravel 9 특정 디렉토리 내 model, controller, migrate 생성 시 path 경로 설정 방법

안녕하세요! 계묘년 올 한 해도 다들 목표한 바 이루시길 바랍니다. 오늘은 기본 생성 방법이 아닌 특정 디렉토리 내에 각각 모델, 컨트롤러, database를 생성하는 경로를 알려드리고자 글을 쓰게 되었습니다. 검색해도 공식문서에서도 찾지 못해 이리저리 실험하다 5시간 만에 겨우 알아냈답니다.🥲 글 쓰는 현재 기준, 맥북 Pro macOS Ventura(13.1 버전), phpstorm 사용 중입니다. 0. 본인이 생성할 곳의 위치를 먼저 알아봅시다. 데이터베이스를 제외한 모든 기본 위치는 app 하위에 존재합니다.( ex-app/Models, app/Http/Controllers) 데이터베이스만 유일하게 app과 동일한 위치에 있습니다. (ex- project/database/migrations) 하지..

php artisan migrate 오류 : 1049 에러 / SQLSTATE[HY000] [1049] Unknown database 'root' (SQL: select * from information_schema.tables where table_schema = root and table_name = migrations and table_type = 'BASE TABLE')

php artisan migrate 쓸 때마다 다양한 종류의 에러를 만나는 중입니다ㅋㅋㅋㅋㅋ 이번 1049에러의 경우, 초반에 설치 후 셋팅이 안잡혔을 경우에 나오는 에러입니다. 초반에 MySQL 설치 및 설정 후 그에 맞게 .env와 config/database.php의 기본 셋팅 값을 수정해주어야 합니다. MySQL을 깔고 서치를 통해 기본 셋팅까진 다들 잘 따라하지만, 여기서 저를 포함해 많은 분들이 헷갈리는 부분이 있어 세세하게 정리해보았습니다. 우선 2가지 파일을 손보기 전에 위치를 한번 정리해서 알려드리겠습니다. 저처럼 VS Code를 사용하시는 분들은 상단 검색창에 바로 파일명을 검색하시면 되지만, 그렇지 않은 경우엔 폴더 위치를 통해 찾은 후 편집을 위해 관리자 권한으로 실행하시기 바랍니다..

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..