zoukankan      html  css  js  c++  java
  • How to generate entities from database schema using doctrine-orm-module

    1、安装好doctrine,在composer.json中添加如下

        "require": {
            "php": "^5.6 || ^7.0",
            "doctrine/doctrine-orm-module": "*",
        },

    执行composer install

    2、在yourAPP/config/modules.config.php添加doctrine module

    return [
        'ZendServiceManagerDi',
        'ZendSession',
        'ZendMvcPluginPrg',
        'ZendMvcPluginIdentity',
        'ZendMvcPluginFlashMessenger',
        'ZendMvcPluginFilePrg',
        'ZendMvcI18n',
        'ZendMvcConsole',
        'ZendLog',
        'ZendForm',
        'ZendDb',
        'ZendCache',
        'ZendRouter',
        'ZendValidator',
        'ZendDeveloperTools',
        'Application',
        'DoctrineModule',
        'DoctrineORMModule',
    ];

    3、在yourAPP/config/autoload/local.php添加如下

    <?php
    /**
     * Local Configuration Override
     *
     * This configuration override file is for overriding environment-specific and
     * security-sensitive configuration information. Copy this file without the
     * .dist extension at the end and populate values as needed.
     *
     * @NOTE: This file is ignored from Git by default with the .gitignore included
     * in ZendSkeletonApplication. This is a good practice, as it prevents sensitive
     * credentials from accidentally being committed into version control.
     */
    use DoctrineDBALDriverPDOMySqlDriver as PDOMySqlDriver;
    return [
        'doctrine' => [
            'connection' => [
                'orm_default' => [
                    'driverClass' => PDOMySqlDriver::class,
                    'params' => [
                        'host'     => '10.11.1.2',
                        'port'     => '3306',
                        'user'     => 'xxx',
                        'password' => 'xxx',
                        'dbname'   => 'user_shanmaohuwai',
                    ]
                ],            
            ],        
        ],
    ];

    4、使用doctrine命令生成entity(https://www.e-learn.cn/content/wangluowenzhang/609311)

    问题:

    I am using "doctrine/doctrine-orm-module": "0.7.0" with ZF2.

    Once I create Entities I usually run following commands to sync and generate database automatically according to my entities.

    ./vendor/bin/doctrine-module orm:validate-schema
    ./vendor/bin/doctrine-module orm:schema-tool:create

    Is there a way to make this process reverse? I mean, Can I generate entities from existing database in mysql?

    回答1:

    We use a batch script:

    @ECHO OFF
    
    mkdir EXPORT
    call .vendorindoctrine-module orm:convert-mapping --force --from-database annotation ./EXPORT/
    call .vendorindoctrine-module orm:generate-entities ./EXPORT/ --generate-annotations=true
    
    pause 

    orm:convert-mapping and orm:generate-entities is probably what you are looking for.



    回答2:

    There's a nice blog written on this here

    Edit: It can be done by using the commands below:
    1. convert-mapping (Table & Entity):

    ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="Album\Entity\" --force  --from-database annotation ./module/Album/src/

    2. Generates getter and setter

    ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:generate-entities ./module/Album/src/ --generate-annotations=true

    回答3:

    Try just it

    doctrine orm:convert-mapping -f --from-database annotation entities/
    
    doctrine orm:generate-entities --generate-annotations="true" entities/

    http://wildlyinaccurate.com/useful-doctrine-2-console-commands/

    cd appdir
    ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="Application\Entity\" --force --from-database annotation ./module/Application/src/
    ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:generate-entities ./module/Application/src/ --generate-annotations=true
  • 相关阅读:
    ORACLE学习-1.过滤和排序
    Java-net.sf.json.JSONException: java.lang.reflect.InvocationTargetException处理方法之一
    ORACLE
    java日常-com.alibaba.fastjson快速处理json字符串转成list类型
    java日常-List、Map初始值
    javaScript中获取时间
    获取select的option值及其文本
    java日常-通过年月,获取到月的第一天和最后一天
    sybase powerdesigner 16.5注册码
    05-Docker私有仓库
  • 原文地址:https://www.cnblogs.com/yipianchuyun/p/11427312.html
Copyright © 2011-2022 走看看