# Creating table and importing data with Ruby

**URL:** <https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761>\
**Category:** Rails\
**Created:** [November 24, 2005, 4:06am UTC](https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761 "2005-11-24T04:06:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![gnuvince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/82dd89/32.png) [@gnuvince](https://www.ruby-forum.com/u/gnuvince)\
**Post date:** [November 24, 2005, 4:06am UTC](https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761/1 "2005-11-24T04:06:28Z")

</div>

Hello,

I want to make a new Rails application, but I hate SQL. So I wanted to  
know if it was possible to do that with Ruby itself. To create the data  
structure, I have the following script:

require “rubygems”  
require “active\_record”

ActiveRecord::Base.establish\_connection({  
:adapter =\> “mysql”,  
:host =\> “localhost”,  
:database =\>  
“cwh\_development”,  
:username =\> “root”  
})

ActiveRecord::Schema.define do

create\_table :languages do |t|  
t.column :name, :string  
end

create\_table :approvers do |t|  
t.column :name, :string  
t.column :username, :string  
t.column :password, :string  
t.column :email, :string  
end

create\_table :words do |t|  
t.column :word, :string  
t.column :definition, :text  
t.column :approver\_id, :integer  
t.column :language\_id, :integer  
t.column :created\_at, :datetime  
t.column :updated\_at, :datetime  
end

end

How does that script look? Is there anything I could do to improve it?

Also, I have a large dictionary file with one word per line that I would  
want to import into the words table. Is there an easy way to do that  
with Ruby and ActiveRecord?

Many thanks guys,

Vincent.

---

<div class="post-metadata">

**Author:** ![gnuvince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/82dd89/32.png) [@gnuvince](https://www.ruby-forum.com/u/gnuvince)\
**Post date:** [November 24, 2005, 12:04pm UTC](https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761/2 "2005-11-24T12:04:17Z")

</div>

Anyone?

---

<div class="post-metadata">

**Author:** ![gnuvince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/82dd89/32.png) [@gnuvince](https://www.ruby-forum.com/u/gnuvince)\
**Post date:** [November 24, 2005, 8:47pm UTC](https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761/3 "2005-11-24T20:47:48Z")

</div>

gnuvince wrote:

> Anyone?

Well, you can just put your ActiveRecord::Schema.define do…end in  
db/schema.rb and run rake db\_schema\_import.

---

<div class="post-metadata">

**Author:** ![gnuvince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/82dd89/32.png) [@gnuvince](https://www.ruby-forum.com/u/gnuvince)\
**Post date:** [November 28, 2005, 10:05pm UTC](https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761/4 "2005-11-28T22:05:07Z")

</div>

> How about ActiveRecord::Migration and rake migrate?

Anyone?

---

<div class="post-metadata">

**Author:** ![gnuvince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/82dd89/32.png) [@gnuvince](https://www.ruby-forum.com/u/gnuvince)\
**Post date:** [November 25, 2005, 4:48pm UTC](https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761/5 "2005-11-25T16:48:00Z")

</div>

gnuvince wrote:

> Hello,
> 
> I want to make a new Rails application, but I hate SQL. So I wanted to  
> know if it was possible to do that with Ruby itself. To create the data  
> structure, I have the following script:

How about ActiveRecord::Migration and rake migrate?

[http://api.rubyonrails.com/classes/ActiveRecord/Migration.html](http://api.rubyonrails.com/classes/ActiveRecord/Migration.html)

---

<div class="post-metadata">

**Author:** ![gnuvince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/82dd89/32.png) [@gnuvince](https://www.ruby-forum.com/u/gnuvince)\
**Post date:** [November 30, 2005, 3:37pm UTC](https://www.ruby-forum.com/t/creating-table-and-importing-data-with-ruby/48761/6 "2005-11-30T15:37:09Z")

</div>

gnuvince wrote:

> create\_table :languages do |t|  
> t.column :name, :string  
> end
> 
> create\_table :approvers do |t|  
> t.column :name, :string  
> t.column :username, :string  
> t.column :password, :string  
> t.column :email, :string  
> end  
> …

This looks a lot like Og, see  
[http://www.rubygarden.org/index.cgi/Libraries/og\_tutorial.rdoc](http://www.rubygarden.org/index.cgi/Libraries/og_tutorial.rdoc).

Danny ([blog.dannynet.net](http://blog.dannynet.net))
