Code Monkey home page Code Monkey logo

Comments (5)

distler avatar distler commented on July 29, 2024

Hmm. Works for me, both with the default sqlite3 database and with mysql.

Details (both tested under Ruby 2.6):

production:
  adapter: sqlite3
  database: db/production.db.sqlite3
production:
  adapter: mysql
  database: XXXXX
  username: XXXXX
  password: XXXXXXX
  host: 127.0.0.1
  port: 3306
  encoding: utf8mb4

Note: old versions of MySQL, with the utf8 encoding have problems with Astral Plane characters. Recent versions use utf8mb4 by default, but it never hurts to make sure.

from instiki.

ilpssun avatar ilpssun commented on July 29, 2024

I will investigate later when I have access to my system again. As far as I recall, I set the encoding explicitly to utf8 because with utf8mb4 the migrations were producing errors about the constraint names being too long on MariaDB. Can that be true?

from instiki.

distler avatar distler commented on July 29, 2024

The 'utf8' encoding will definitely mangle astral-plane characters. If that's what you did, then then the problem is entirely one of your own creation.

I have not tried MariaDB, but I would have thought it was otherwise compatible with MySQL (which has no problem, AFAICT, with the migrations.

from instiki.

ilpssun avatar ilpssun commented on July 29, 2024

Yes, the wrong encoding was the issue. It was, however, not a straightforward fix. In the default configuration, converting the table schema_migrations fails with the error Specified key was too long; max key length is 767 bytes.

The fix was to use the following config for the MariaDB server:

[mysqld]
innodb_large_prefix=on
innodb_file_format=Barracuda

Also, I ensured that the table had ROW_FORMAT=DYNAMIC.

After that, a conversion to utf8mb4 was successful.

from instiki.

distler avatar distler commented on July 29, 2024

The fix was to use the following config for the MariaDB server ...

As always, some instructions on the wiki would probably help out some future users.

from instiki.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.