diff --git a/src/db/database.cr b/src/db/database.cr index ef2a459..2f85551 100644 --- a/src/db/database.cr +++ b/src/db/database.cr @@ -22,6 +22,8 @@ module DB # Closes all connection to the database. def close @connection.try &.close + # prevent GC Warning: Finalization cycle involving discovered by mysql implementation + @connection = nil end # :nodoc: diff --git a/src/db/db.cr b/src/db/db.cr index a4e0678..abbdf2c 100644 --- a/src/db/db.cr +++ b/src/db/db.cr @@ -101,8 +101,11 @@ module DB # Same as `#open` but the database is yielded and closed automatically. def self.open(uri : URI | String, &block) build_database(uri).tap do |db| - yield db - db.close + begin + yield db + ensure + db.close + end end end