小编Don*_*ggs的帖子

将主键添加到MySQL表,并自动填充它

我有一堆没有主键的大表.(不要问我为什么)我会在每张桌子上附加一个'id'字段.它将是一个整数类型.稍后,我将它推广到非null,唯一值索引和主键.

我的问题:MySQL中有没有办法(5个问题)我们有大约一百个表,其中最大的表有超过100万个记录.在创建新的"id"列之后,有没有办法让MySQL回填(即,在现有记录中添加一个值)'id'字段?我宁愿能够在MySQL中完成所有这些工作.否则,我将不得不编写一个PHP脚本来填充现有记录.

唐,唐!

mysql primary-key

7
推荐指数
1
解决办法
4796
查看次数

Symfony2/Doctrine2无效的映射文件在尝试生成实体时出现异常

我有一个非常简单的数据库,我试图导入,并从中创建实体.Doctrine(Symfony)能够从数据库生成YML映射文件.但是,当我临时尝试生成实体时,我收到以下错误:

[Doctrine\Common\Persistence\Mapping\MappingException]
Invalid mapping file 'SandboxBundle.Entity.Product.orm.yml' for class
'SandboxBundle\Entity\Product'.
Run Code Online (Sandbox Code Playgroud)

yml文件对我来说很好,因为我们期望它是由Doctrine生成的.只是为了确定,我检查了一个在线yml验证器,它说没关系.我用来尝试生成实体的命令是:

app/console generate:doctrine:entities sandbox
Run Code Online (Sandbox Code Playgroud)

.yml文件如下.请原谅这里粘贴文件导致的任何yml间距错误.正如我所说,yml文件是由doctrine生成的,并且确实通过了在线验证.

Product:
  type: entity
  table: product
    indexes:
      category_id:
          columns:
              - category_id
  id:
      id:
          type: integer
          nullable: false
          unsigned: false
          comment: ''
          id: true
          generator:
              strategy: IDENTITY
  fields:
      productname:
          type: string
          nullable: true
          length: 10
          fixed: false
          comment: ''
      categoryId:
          type: integer
          nullable: true
          unsigned: false
          comment: ''
          column: category_id
 lifecycleCallbacks: {  }
Run Code Online (Sandbox Code Playgroud)

为了完整起见,这里是Category yml文件.错误发生在产品上,但我认为这是因为产品首先得到处理.

Category:
   type: entity
   table: category
       id:
          id:
              type: integer
              nullable: false
              unsigned: false …
Run Code Online (Sandbox Code Playgroud)

php mappingexception symfony doctrine-orm

6
推荐指数
1
解决办法
8702
查看次数

Magento db连接参数不会改变,疯狂缓存?

我已将整个www目录从我们的Web服务器复制到本地工作站.我想让Magento连接到本地数据库.是的,我更改了'magento/app/etc/local.xml'文件中的连接字符串值.我已经验证了大约一百次它被改变了.在你告诉我它被缓存之前,我已经删除了整个'magento/var/cache'目录,只是为了安全,并且在www目录中为我们的'secret_password'添加了所有文件.以下是我的local.xml文件的摘录.

<host><![CDATA[localhost]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[root]]></password>
<dbname><![CDATA[dev_xarisma]]></dbname>
Run Code Online (Sandbox Code Playgroud)

我在我的笔记本电脑上试过这个,并且确实发现缓存是个问题.花了我几个小时来搞清楚.但是我终于抛弃了'Varien_Db_Adapter_Pdo_Mysql'对象,就在那时我看到它获得的值不是我在'local.xml'文件中设置的值; 看下面的部分转储.

    [_config:protected] => Array
    (
        [host] => localhost
        [username] => root
        [password] => (*secret_pass_you_cant_see*)
        [dbname] => production_xarisma
Run Code Online (Sandbox Code Playgroud)

我终于想通过在WWW目录中获取我们的强密码来缓存旧的登录凭据.我很惊讶地发现magento/var/cache文件中的一堆文件.我删除了有问题的文件,这解决了我的笔记本电脑上的问题.但是,它不能在工作站上运行.我删除了整个var目录,行为仍在继续.我甚至多次重启我的工作站,以防它被Apache缓存,但没有运气.

笔记本电脑和工作站都运行Ubuntu 31.10,使用Apache2,当前的mySql,两者都没有什么特别之处.如果你想知道为什么我会这么疯狂地"将生产服务器克隆到我的工作站"程序,这是因为我们试图解决仅在生产中的问题.是的,我检查了所有甚至看起来相关的文章.先感谢您.

database connection caching magento

4
推荐指数
2
解决办法
2万
查看次数