ActiveRecord : 콘솔에서 테이블의 열 나열
ActiveRecord에 다음을 사용하여 콘솔에 테이블을 나열하도록 요청할 수 있다는 것을 알고 있습니다.
ActiveRecord::Base.connection.tables
주어진 테이블의 열을 나열하는 명령이 있습니까?
이것은 테이블의 column_names를 나열합니다.
Model.column_names
e.g. User.column_names
이것은 열 이름뿐만 아니라 열을 가져오고 ActiveRecord :: Base :: Connection을 사용하므로 모델이 필요하지 않습니다. db의 구조를 빠르게 출력하는 데 편리합니다.
ActiveRecord::Base.connection.tables.each do |table_name|
puts table_name
ActiveRecord::Base.connection.columns(table_name).each do |c|
puts "- #{c.name}: #{c.type} #{c.limit}"
end
end
샘플 출력 : http://screencast.com/t/EsNlvJEqM
레일 3을 사용하면 모델 이름 만 입력 할 수 있습니다.
> User
gives:
User(id: integer, name: string, email: string, etc...)
레일 4에서는 먼저 연결을 설정해야합니다.
irb(main):001:0> User
=> User (call 'User.connection' to establish a connection)
irb(main):002:0> User.connection; nil #call nil to stop repl spitting out the connection object (long)
=> nil
irb(main):003:0> User
User(id: integer, name: string, email: string, etc...)
당신은 SQL 명령에 익숙한 경우 앱의 폴더와 실행 입력 할 수있는 rails db
간단한 형태입니다 rails dbconsole
. sqlite이든 mysql이든 데이터베이스의 셸로 들어갑니다.
그런 다음 다음과 같은 sql 명령을 사용하여 테이블 열을 쿼리 할 수 있습니다.
pragma table_info(your_table);
rails dbconsole
명령 줄 도구에서 실행 하여 sqlite 콘솔을 열 수 있습니다 . 그런 다음에 입력 한 .tables
목록에있는 모든 테이블 및 .fullschema
열 이름과 유형 모든 테이블의 목록을 얻을 수 있습니다.
테이블의 열을 나열하려면 일반적으로 다음을 사용합니다
Model.column_names.sort
..
i.e. Orders.column_names.sort
열 이름을 정렬하면 원하는 내용을 쉽게 찾을 수 있습니다.
각 열에 대한 자세한 내용은 다음을 사용하십시오
Model.columns.map{|column| [column.name, column.sql_type]}.to_h
.
이것은 멋진 해시를 제공합니다. 예를 들면 :
{
id => int(4),
created_at => datetime
}
더 간결한 형식과 적은 타이핑을 위해 다음을 수행하십시오.
Portfolio.column_types
예를 들어 rails console o rails dbconsole을 사용하여이 유용한 정보를 보완합니다.
학생은 레일 콘솔을 사용하는 내 모델입니다.
$ rails console
> Student.column_names
=> ["id", "name", "surname", "created_at", "updated_at"]
> Student
=> Student(id: integer, name: string, surname: string, created_at: datetime, updated_at: datetime)
Rails를 통해 SQLite를 사용하는 다른 옵션 :
$ rails dbconsole
sqlite> .help
sqlite> .table
ar_internal_metadata relatives schools
relationships schema_migrations students
sqlite> .schema students
CREATE TABLE "students" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "surname" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);
마지막으로 자세한 내용은.
sqlite> .help
도움이 되었기를 바랍니다!
참고 URL : https://stackoverflow.com/questions/5575970/activerecord-list-columns-in-table-from-console
'programing' 카테고리의 다른 글
" 'Microsoft.ACE.OLEDB.12.0'공급자가 로컬 컴퓨터에 등록되지 않았습니다."xlsx 프로세스를 SQL 서버로 가져 오는 동안 오류 발생 (0) | 2020.08.14 |
---|---|
Java switch 문 여러 경우 (0) | 2020.08.14 |
자바 스크립트 및 정규식 : 문자열을 분할하고 구분 기호 유지 (0) | 2020.08.14 |
Angular CLI 오류 : serve 명령을 Angular 프로젝트에서 실행해야하지만 프로젝트 정의를 찾을 수 없습니다. (0) | 2020.08.14 |
데이터 URL 파일 다운로드 (0) | 2020.08.14 |