Skip to content

Commit 10d78ab

Browse files
committed
Switch database to postgres
1 parent 8849f9d commit 10d78ab

15 files changed

+440
-436
lines changed

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
source "https://rubygems.org"
22

3-
gem 'dm-sqlite-adapter'
3+
gem 'dm-postgres-adapter'
44

55
gem "dm-serializer",
66
git: "https://github.com/89mo/dm-serializer.git",

Gemfile.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,16 @@ GEM
7979
dm-core (~> 1.2.0)
8080
dm-migrations (1.2.0)
8181
dm-core (~> 1.2.0)
82-
dm-sqlite-adapter (1.2.0)
82+
dm-postgres-adapter (1.2.0)
8383
dm-do-adapter (~> 1.2.0)
84-
do_sqlite3 (~> 0.10.6)
84+
do_postgres (~> 0.10.6)
8585
dm-timestamps (1.2.0)
8686
dm-core (~> 1.2.0)
8787
dm-transactions (1.2.0)
8888
dm-core (~> 1.2.0)
8989
dm-validations (1.2.0)
9090
dm-core (~> 1.2.0)
91-
do_sqlite3 (0.10.17)
91+
do_postgres (0.10.17)
9292
data_objects (= 0.10.17)
9393
docile (1.4.1)
9494
et-orbi (1.2.11)
@@ -175,8 +175,8 @@ DEPENDENCIES
175175
ci_reporter
176176
data_mapper
177177
dm-migrations
178+
dm-postgres-adapter
178179
dm-serializer!
179-
dm-sqlite-adapter
180180
dm-types!
181181
eventmachine!
182182
fastercsv

Rakefile

-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ require 'sync'
1111
require 'rake/dsl_definition'
1212
require 'rake'
1313

14-
$db_access = Sync.new
15-
1614
load File.expand_path('spec/spec.rake')
1715

1816
# default database is development

lib/junethack/database.rb

+5-3
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,20 @@
1515
puts "Configuring production database"
1616
# for debugging: print all generated SQL statemtens
1717
#DataMapper::Logger.new("logs/db.log", :debug)
18-
DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/junethack.db")
18+
DataMapper.setup(:default, 'postgres://localhost/junethack')
1919
end
20+
2021
configure :development do
2122
puts "Configuring development database"
2223
# for debugging: print all generated SQL statemtens
2324
DataMapper::Logger.new("logs/dev_db.log", :debug)
24-
DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/junethack_dev.db")
25+
DataMapper.setup(:default, 'postgres://localhost/junethack')
2526
end
27+
2628
configure :test do
2729
puts "Configuring test database"
2830
DataMapper::Logger.new("logs/test_db.log", :debug)
29-
DataMapper.setup(:default, "sqlite3::memory:")
31+
DataMapper.setup(:default, "postgres://#{user}:#{password}@localhost/junethack_test")
3032

3133
# suppress migration output.
3234
# it would be written at every run as we use a in-memory db

lib/junethack/fetch_games.rb

+2-9
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def fetch_all
3535
if server.xlogcurrentoffset == nil
3636
server.xlogcurrentoffset = header['content-length'].to_i
3737
server.xloglastmodified = header['last-modified'] || 'Thu, 01 Jan 1970 00:00:00 GMT'
38-
$db_access.synchronize { server.save }
38+
server.save
3939
next
4040
end
4141

@@ -52,9 +52,6 @@ def fetch_all
5252
#repository.adapter.execute("BEGIN IMMEDIATE TRANSACTION");
5353
games.each do |line|
5454
begin
55-
$db_access.lock :EX
56-
#@fetch_logger.debug $db_access.inspect
57-
5855
i += 1
5956
#@fetch_logger.debug "#{line.length} #{line}"
6057
xlog_add_offset = line.length
@@ -117,10 +114,6 @@ def fetch_all
117114
# this game is completely input into the db
118115
# don't parse it again
119116
server.xlogcurrentoffset += xlog_add_offset
120-
server.save
121-
ensure
122-
$db_access.unlock :EX
123-
#@fetch_logger.debug $db_access.inspect
124117
end
125118
end
126119
#repository.adapter.execute("COMMIT");
@@ -130,7 +123,7 @@ def fetch_all
130123
@fetch_logger.debug "No games at all on #{server.name}!"
131124
end
132125
server.xloglastmodified = last_modified
133-
$db_access.synchronize { server.save }
126+
server.save
134127
else
135128
@fetch_logger.debug "No new games on #{server.name}."
136129
end

lib/junethack/models/game.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ class Game
209209
property :conduct, String, :default => "0"
210210
property :nconducts, Integer,
211211
:default => lambda { |r, p| (Integer(r.conduct) & 4095).to_s(2).count("1") } # count the number of bits set in conduct
212-
property :conductX, Text
212+
property :conductX, Text, :default => ''
213213
property :role, String
214214
property :deathdnum, Integer
215215
property :gender, String

lib/junethack/models/user.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def to_i
7272
end
7373

7474
def User.max_created_at
75-
repository.adapter.select "select strftime('%s',max(created_at)) from users"
75+
repository.adapter.select('SELECT EXTRACT(EPOCH FROM MAX(created_at))::int FROM users')
7676
end
7777

7878
def display_game_statistics

0 commit comments

Comments
 (0)