Slow Assets Fix

To improve compile Sometimes you just need to cleanup the assets cache

rake assets:clobber
rake assets:precompile

Bundle Hangs on bundle update

I finally found a reason why sometimes my ‘bundle update’ hangs infinitely.. It keeps showing dots… and takes forever..

bundle audit
Resolving dependencies...........   *sigh* ...

I have some gems that are available only for authorized users.
When the ssh keychain is still locked (haven’t entered a password for my ssh-key yet) Bundler keeps running infinitely without showing any password entry…


Emoticons in Rails Database

To support emoticons in a MySQL database you must use the utf8mb4 character set.
This isn’t a rails default.
To make sure the database uses the correct format I use the following migration to change the default charcter set

class InitDatabase < ActiveRecord::Migration[5.2]
  def up
    execute "ALTER DATABASE `#{connection.current_database}` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"

More info about the reason why I choose to use utf8mb4_unicode_ci as collection

And force rails in using max string length of 191 which is required for the keylength of 767.
You can add the following monkey patch to the initializer

# config/initializers/monkey_patch_mysql_utf8mb4.rb
require 'active_record/connection_adapters/abstract_mysql_adapter'

module ActiveRecord
  module ConnectionAdapters
    class AbstractMysqlAdapter
      NATIVE_DATABASE_TYPES[:string] = { name: "varchar", limit: 191 }