I'll provide a log in the future, sorry about that. The development situation is kind of odd. I'm not going to go into a lot of details, but I do like having an initial schema. I actually kind of cheated before and had the first migration simply use mysqldump to import existing SQL. I may stick with that method.
However, I was also using the generated schema as a matter of seeing how to write migrations going forward anyway. The solution I found was to use DB specific types, so column id, "binary(16)", :null=>false, :primary_key=>true did the trick. Thanks for the help. On Monday, October 8, 2012 5:36:56 PM UTC-7, Jeremy Evans wrote: > > On Tuesday, October 9, 2012 2:17:10 AM UTC+2, Joshua Hansen wrote: >> >> I'm working with an existing MySQL schema and am adapting Sequel to work >> with it for a Rails project. The primary keys of most of the database are >> binary blobs representing UUIDs. I used Sequel's schema dumper as a >> starting place for future migrations and got something like this: >> >> create_table(:example_table, :ignore_index_errors=>true) do >> File :id, :size=>16, :null=>false >> >> primary_key [:id] >> >> index [:id], :name=>:id_UNIQUE, :unique=>true, :size=>16 >> end >> >> Unfortunately, when I attempt to run a migration like this, I get the >> following error: >> >> Mysql2::Error: BLOB/TEXT column 'id' used in key specification without a >> key length >> >> The short question is, how do I get around this problem and still use >> migrations? >> > > It's always helpful when you run into issues like this to post a complete > SQL log showing the query that causes the error. Without that it is more > difficult to diagnose the problem. > > If I had to guess, the issue is that either the primary key constraint > needs to be '(id(16))' and not '(id)' or Sequel is ignoring the :size > option for the File generic type, probably the latter. You could try > dumping in database specific mode (-D) instead of database independent mode > (-d) and see if that makes a difference. Assuming the issue is that the > :size option is being ignored, that may fix it. Worst case scenario would > be you have to write the CREATE TABLE SQL by hand for that table. > > You should always question whether you really need to convert the existing > schema into Sequel migration format, or if using Sequel's schema dumper is > the best way to accomplish what you want. Maybe just using mysql dump > output and using raw SQL queries would be easier if you only intend to run > on MySQL. Unless you are attempting to convert to another database, you > may be better off using mysql-specific tools. Sequel's schema_dumper is a > best-effort thing, it will never handle all cases. > > Jeremy > -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/sequel-talk/-/TbncloysTVQJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sequel-talk?hl=en.
