preaction / Yancy

The Best Web Framework Deserves the Best Content Management System
http://preaction.me/yancy/
Other
54 stars 21 forks source link

Test failure for SQLite foreign key constraints #87

Closed chy-causer closed 4 years ago

chy-causer commented 4 years ago

Hi there,

When trying to install Yancy using CPAN I get test failures:

#   Failed test 'default id field'
#   at /root/.cpanm/work/1585663571.14668/Yancy-1.046/t/backend/../lib/Local/Test.pm line 777.
Cannot do foreign key with columns that are not the primary ID (x-id-field) on table blog, relationship user (foreign column: username, foreign id: id) at /root/.cpanm/work/1585663571.14668/Yancy-1.046/blib/lib/Yancy/Backend/Role/Relational.pm line 402.

The full output is in a Gist

Output from dpkg -l

ii  libaprutil1-dbd-sqlite3:amd64                            1.5.4-3                           amd64        Apache Portable Runtime Utility Library - SQLite3 Driver
ii  libsqlite0                                               2.8.17-14                         amd64        SQLite 2 shared library
ii  libsqlite3-0:amd64                                       3.16.2-5+deb9u1                   amd64        SQLite 3 shared library
ii  sqlite                                                   2.8.17-14                         amd64        command line interface for SQLite 2
ii  sqlite3                                                  3.16.2-5+deb9u1                   amd64        Command line interface for SQLite 3
ii  libdbd-pg-perl                                           3.10.5-1~pgdg90+1                 amd64        Perl DBI driver for the PostgreSQL database server
ii  libdbd-sqlite3-perl                                      1.54-1                            amd64        Perl DBI driver with a self-contained RDBMS
ii  libdbi-perl                                              1.636-1+b1                        amd64        Perl Database Interface (DBI)
ii  libdbix-class-candy-perl                                 0.005002-1                        all          module providing syntax sugar for DBIx::Class
ii  libdbix-class-cursor-cached-perl                         1.001004-1                        all          cursor object with built-in caching support
ii  libdbix-class-dynamicdefault-perl                        0.04-1                            all          dbix-class extension to automatically set and update fields
ii  libdbix-class-helpers-perl                               2.033002-1                        all          collection of helpers for DBIx::Class
ii  libdbix-class-journal-perl                               0.900200-1                        all          Auditing for tables managed by DBIx::Class
ii  libdbix-class-perl                                       0.082840-3                        all          extensible and flexible object <-> relational mapper
ii  libdbix-class-schema-loader-perl                         0.07046-1                         all          module to automate definition of a DBIx::Class::Schema
ii  libdbix-class-timestamp-perl                             0.14-1                            all          DBIx::Class extension to update and create date and time based fields
ii  libdbix-connector-perl                                   0.56-1                            all          fast and safe DBI connection and transaction management
ii  libdbix-introspector-perl                                0.001005-1                        all          module to detect what database code is connected to

I've I've left out any crucial bit of information please let me know.

preaction commented 4 years ago

Looks like this was caused by a just-slightly-too-old version of DBD::SQLite. Thanks for the details! Because of that, it only took me a few minutes to fix this :)