#!/usr/bin/perl
use strict;
use warnings;
use DBIx::Class::Schema::Loader qw/make_schema_at/;
make_schema_at(
"Mydb::Schema",
{debug => 0, dump_directory => "../db/",
generate_pod => 0,},
["dbi:mysql:mydb:localhost:3306", 'mydb', 'password'],
);
MySQLでの私のテーブル名がpeople
ですが、私はこのコードを実行すると、生成されたクラスはMydb::Schema::Result::Person
という名前:
$ cat Mydb/Schema/Result/Person.pm
use utf8;
package Mydb::Schema::Result::Person;
# Created by DBIx::Class::Schema::Loader
# DO NOT MODIFY THE FIRST PART OF THIS FILE
use strict;
use warnings;
use base 'DBIx::Class::Core';
__PACKAGE__->table("people");
__PACKAGE__->add_columns(
"pplid",
{
data_type => "smallint",
extra => { unsigned => 1 },
is_auto_increment => 1,
is_nullable => 0,
},
...
...
なぜ "人"が "人"に変換されているのですか?
これはあなたまたは他の誰かが書いたスクリプトです。これはDBIx :: Classの一部ではありません。おそらくそこにそのマッピングを定義したでしょう。 – simbabque
@simbabqueすべてのスクリプトは 'DBIx :: Class :: Schema :: Loader :: make_schema_at'を呼び出します。 DBIx :: Classはこれを行っていますが、OPが作成したマッピングではありません。 – ThisSuitIsBlackNot
@ThisSuitIsBlackいいえ、私はそのコメントを書いたときにコードはまだ質問にはありませんでした。私は多元化について知っていますが、私はそれが単数形を持つことができない言葉のためにそれをすることを期待したいです。 – simbabque