Thank you Jeremy,
It worked after I changed to your code. I understand it now. Appreciate
your help!
Luan
On Wednesday, June 11, 2014 11:39:58 AM UTC-5, Jeremy Evans wrote:
>
> On Wednesday, June 11, 2014 8:54:26 AM UTC-7, Luan wrote:
>>
>> Hi everyone,
>>
>> Here is my code:
>>
>> #!/usr/bin/env ruby
>>
>> require 'rubygems'
>> require 'sequel'
>>
>>
>> puts ENV['DB_USER']
>> puts ENV['DB_NAME']
>> db_connect = "postgres://" + ENV['DB_USER'] + "@localhost/" +
>> ENV['DB_NAME']
>> DB = Sequel.connect(db_connect) # Uses the postgres adapter "Starting
>> ...geting stock info:\n\n"
>>
>> h = Hash.new
>> h['name'] = 'String'
>> h['age'] = 'Integer'
>>
>> DB.create_table!(:tests) do
>> primary_key :id
>> #String :name
>> h.each do |field, type|
>> column field, type
>> end
>> end
>>
>> ------
>>
>>
>> When I replace
>> h['name'] = 'String' to h['name'] = 'Varchar' then it worked
>>
>> However, I thought I could use the same as in the documentation where we
>> can put String and it uses varchar or text depends on db. I am using
>> Postgres.
>>
>> create_table(:columns_types) do # database type used
>> column :a1, :string # string
>> column :a2, String # varchar(255)
>> column :a3, 'string' # string
>> column :a4, :datetime # datetime
>> column :a5, DateTime # timestamp
>> column :a6, 'timestamp(6)' # timestamp(6)
>> end
>>
>>
>> Thanks,
>>
>> Luan
>>
>> Error Message:
>>
>> /Users/luan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sequel-4.10.0/lib/sequel/adapters/postgres.rb:161:in
>>
>> `async_exec': PG::UndefinedObject: ERROR: type "string" does not exist
>> (Sequel::DatabaseError)
>> LINE 1: ...TE TABLE "tests" ("id" serial PRIMARY KEY, "name" String, "a...
>>
>
> Just as the documentation says, if you use 'string' (or any symbol or
> string), it will use that value verbatim. As PostgreSQL doesn't have a type
> named string, it raises an error.
>
> If you want to use the generic type support, you have to use a class:
>
> h = Hash.new
> h['name'] = String
> h['age'] = Integer
>
> Thanks,
> Jeremy
>
--
You received this message because you are subscribed to the Google Groups
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.