티스토리 뷰
먼저 User 테이블을 생성하기 위해서 터미널에서 아래 명령 실행
$ rails g scaffold User username:string nickname:string group:string
실행하면 아래의 마이그레이션 파일이 생성된다
# db/migrate/20230424110200_create_users.rb
class CreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users do |t|
t.string :username
t.string :nickname
t.string :group
t.timestamps
end
end
end
이 테이블에는 인덱스가 생성되지 않았다. 여기 인덱스를 추가하려면?
인덱스 추가
1. 터미널 명령어로 인덱스 추가
$ rails generate migration add_unique_index_to_users_username
$ rails generate migration add_unique_index_to_users_group_and_username
아래와 같은 마이그레이션 파일이 추가된다
# db/migrate/20230424110300_add_unique_index_to_users_username.rb
class AddUniqueIndexToUsersUsername < ActiveRecord::Migration[7.0]
def change
add_index :users, :username, unique: true
end
end
# db/migrate/20230424120000_add_unique_index_to_users_group_and_username.rb
class AddUniqueIndexToUsersGroupAndUsername < ActiveRecord::Migration[7.0]
def change
add_index :users, [:group, :username], unique: true
end
end
2. 좀 편한 방법
기존 마이그레이션 파일에 명령 추가..
운영서버에 반영하기 전에는 이렇게 하는게 편하다
# db/migrate/20230424110200_create_users.rb
class CreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users do |t|
t.string :username
t.string :nickname
t.string :group
t.timestamps
end
add_index :users, :username, unique: true
add_index :users, [:group, :username], unique: true
end
end
인덱스 삭제
삭제는 조금 더 신중해야 하는데
운영서버에 반영된 후에는 이렇게 하고 필요한 경우에 데이터마이그레이션 코드도 추가 해 줘야한다.
1. 터미널 명령어로 인덱스 삭제
rails generate migration remove_unique_index_from_users_group_and_username
..... 너무길다
class RemoveUniqueIndexFromUsersGroupAndUsername < ActiveRecord::Migration[7.0]
def change
remove_index :users, [:group, :username]
end
end
2. 좀 편한 방법
rails generate migration remove_index_from_users
이렇게 대충 치면... 대충 빈게 생성되는데...
# 20230424122540_remove_index_from_users
class RemoveIndexFromUsers < ActiveRecord::Migration[7.0]
def change
end
end
remove index문장을 붙여넣어주면된다
'Tech' 카테고리의 다른 글
Golang - Base64(Encoding, Decoding) Sample Code (0) | 2023.02.14 |
---|---|
Java - Url(Encoding, Decoding) Sample Code (0) | 2023.02.14 |
Java - Base64(Encoding, Decoding) Sample Code (0) | 2018.10.02 |
Scala - Hello World + Gradle Setting (0) | 2018.10.02 |
Kotlin - Hello World + Gradle Setting (0) | 2018.10.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ActiveRecord
- JQuery
- git
- Knowhow
- js
- RubyOnRails
- BASE64
- enum
- index
- version
- sample
- golang
- error
- Snippet
- vscode
- URLEncode
- Scala
- Source
- 사용법
- Algorithm
- spring
- Regex
- Mac
- ChatGPT
- HelloWorld
- urldecode
- Kotlin
- gradle
- cdn
- 노가다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함