2013-03-06 3 views
2

Я изучаю Ruby и Sequel и пытаюсь сделать таблицу.Как сделать TIMESTAMP WITH TIME ZONE столкновением с Ruby Sequel?

Я хочу сохранить свое значение времени, как в UTC в базе данных PostgreSQL. Так что я сделал таблицу с

db.create_table :TestTable1 do 
    Timestamp :field1 
end 

, но я получил

field1 | timestamp without time zone |   | plain | 

Я хочу, чтобы мое значение в базе данных, чтобы иметь строгую основу. Поэтому я хочу заставить все в UTC. Я думаю, что должен быть способ сделать столбец TIMESTAMP WITH TIME ZONE. Как я могу это сделать?

ответ

6

При создании таблицы можно указать конкретные типы:

db.create_table :TestTable1 do 
    column :field1, 'timestamp with time zone' 
end 

Вы, вероятно, хотите использовать Sequel.default_timezone = :utc как хорошо, но это не влияет на время на самом деле хранятся в базе данных.

+0

Если я не выполняю 'Sequel.default_timezone =: utc', продолжит выполнение UTC (в БД) <-> локальное (в Ruby) преобразование? Если он будет обрабатывать его автоматически, это было бы также приятно. – Eonil

+0

Возможно, это возможно. Если вы хотите применить это поведение 'Sequel.database_timezone =: utc' и' Sequel.application_timezone =: local'. –

Смежные вопросы