小编Ste*_*fan的帖子

如何在heroku命令行上调用npm(安装bower组件)?

Bower用于客户端Javascript npm用于服务器端并读取component.json文件以识别应该在部署时获取的依赖项,因此我很高兴heroku将在slug编译时运行它.

不幸的是,我无法通过heroku控制台或一次性命令(heroku run "npm help")(heroku run bash- > npm help)调用npm或bower,因为它可以使用ruby的rake.我把npm和node(latest/x版本)放在我package.json的引擎部分,而不是依赖项中.

我认为这可以通过自定义节点buildpack来解决,但我认为这对于激活一些如此明显的东西来说有点过于繁重.

heroku node.js bower

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

加速Oracle Text索引或让索引器仅在低负载时间工作

我们使用Oracle Text CTXSYS.CONTEXT索引来索引包含元信息的大约50万行.信息分布在两个表中,这两个表由索引器在运行时调用的过程(功能索引)组合在一起.

当我在本地机器(简单的双核笔记本)上运行CREATE INDEX时,索引在大约3分钟内构建.在我们的数据库服务器上运行在具有8个内核和16G内存的Solaris上,需要24小时才能为相同(完全相同)的数据创建索引.

示例代码: 这是两个表和3列的索引进纸器:

create or replace procedure docmeta_revisions_text_feeder 
    ( p_rowid in rowid , p_clob in out nocopy clob) as v_clob CLOB begin
    FOR c1 IN (select DM.DID, DM.XDESCRIB || ' ' || DM.XAUTHOR AS data
        from DOCMETA DM
        WHERE ROWID = p_rowid) 
    LOOP
        v_clob := v_clob || c1.data;
        FOR c2 IN (
            SELECT ' ' || RV.DDOCTITLE AS data
            FROM   REVISIONS RV
            WHERE  RV.DID = c1.DID)
        LOOP
            v_clob := v_clob || c2.data;
        END LOOP;
    END LOOP; …
Run Code Online (Sandbox Code Playgroud)

oracle full-text-indexing database-tuning

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

Symfony2/Doctrine2:不要在schema:update上删除全文索引

为了支持Symfony2中的全文索引,我使用了MyISAM镜像表.我们定期将生产数据集复制到该表,并创建一个映射表结构的SearchEntity,并与真实实体相关联.因此,我们可以在SearchRepository上执行搜索查询(使用自定义MATCH AGAINST语句构建器),并通过解析关联来检索找到的实体.

现在,当我执行doctrine:schema:updateDoctrine2时,无法识别该表上的(手动添加的)索引,并希望删除它们.不幸的是,没有建议注释说"但保持这个索引完整!".

我已经尝试使用@Index与全文索引(前缀为ft_)相同的字段的注释欺骗Doctrine ,然后手动执行一些SQL以用我的FT索引替换它们但是也失败了:当Doctrine最初使用那些虚拟创建表时索引失败,因为索引键长度大于1000字节(这是MySQL中明显原因的硬限制)

问题是:我可以建议Doctrine在schema:update命令中保留它在表上找到的索引吗?有没有办法将其破解到框架中?在每次架构更新后重新创建全文索引非常麻烦:(

SearchEntity:

/**
 * @ORM\Table(name="tmp_search2",options={"engine"="MyISAM"},
 *            uniqueConstraints={@ORM\UniqueConstraint(name="uq",columns={"language_id","product_offer_id","product_group_id","retailer_id"} )},
  *            indexes={@Index(name="price_idx", columns={"product_offer_price"}),
  *                     @Index(name="started_at_idx", columns={"product_offer_started_at"}),
  *                     @Index(name="ended_at_idx", columns={"product_offer_ended_at"}),
  *                     @Index(name="ft_products", columns={"product_name"}),
  *                     @Index(name="ft_product_group", columns={"product_group_name"}),
  *                     @Index(name="ft_product_retailer", columns={"retailer_name"})
  *            }
  * )
  * @ORM\Entity(repositoryClass="SearchRepository")
  */

class SearchEntity
{
    /**
     * This field is only here to satisfy doctrine's need for a non-composite primary key.
     * @ORM\Id
     * @ORM\Column(name="id", type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
     private $searchId;

   /**
    * @ORM\ManyToOne(targetEntity="ProductOffer")
    * @ORM\JoinColumn(name="product_offer_id", referencedColumnName="id")
    */
    private $productOffer; …
Run Code Online (Sandbox Code Playgroud)

php mysql sql symfony doctrine-orm

12
推荐指数
1
解决办法
1846
查看次数

具有除数的Symfony2 MoneyType:整数转换导致错误的数据库值

我们将所有与货币相关的值存储在我们的数据库中(ODM,但ORM可能会表现相同).我们使用MoneyType将面向用户的值(12,34€)转换为他们的美分表示(1234c).在典型的float精度问题就出现在这里:由于精确度不够有创造调试时仅仅是可见的舍入误差许多情况下.MoneyType会将传入的字符串转换为可能不精确的浮点数("1765"=> 1764.9999999998).

一旦你坚持这些价值观,事情就会变得糟糕:

class Price {
    /**
     * @var int
     * @MongoDB\Field(type="int")
     **/
    protected $cents;
}
Run Code Online (Sandbox Code Playgroud)

将转换传入的值(浮动!),如:

namespace Doctrine\ODM\MongoDB\Types;
class IntType extends Type
{
    public function convertToDatabaseValue($value)
    {
        return $value !== null ? (integer) $value : null;
    }
}
Run Code Online (Sandbox Code Playgroud)

(整数)强制转换将剥离值的尾数而不是舍入值,从而有效地导致将错误的值写入数据库(当"1765"在内部时为1764.9999999998时,1764而不是1765).

这是一个单元测试,应该在任何Symfony2容器中显示问题:

//for better debugging: set ini_set('precision', 17); 

class PrecisionTest extends WebTestCase
{
    private function buildForm() {
        $builder = $this->getContainer()->get('form.factory')->createBuilder(FormType::class, null, []);
        $form = $builder->add('money', MoneyType::class, [
            'divisor' => 100
        ])->getForm();
        return $form;
    }

    // …
Run Code Online (Sandbox Code Playgroud)

php mongodb symfony doctrine-orm

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

将UTF8输入从JSP表单传输到Spring控制器会破坏变音符号

可能重复:
UTF-8编码和http参数

我有一个带有纯UTF8标头的UTF8编码的JSP(文本文件也编码为UTF-8)和该页面内的表单:

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head>
<body>
This is a funny German character: ß
<form action="utf.do" method="post">
<input type="text" name="p" value="${p}" />
<input type="submit" value="OK"/>
</form>
Run Code Online (Sandbox Code Playgroud)

然后我在后端有一个很好的Spring支持的@Controller:

@Controller
public class UTFCtl {
@RequestMapping("/utf.do")
public ModelAndView handleUTF(@RequestParam(value="p", required=false) String anUTFString) {
    ModelAndView ret = new ModelAndView("utf");
    ret.addObject("p", anUTFString);
    return ret;
     }
 }
Run Code Online (Sandbox Code Playgroud)

如您所见,表单通过POST传输其数据.在表单字段中键入一些德语变音符会在后端产生一堆破碎的字符.因此hähöhü,在提交后,在表单字段上提交会产生hähöhü值.我使用了调试器并且var值已经被加扰,这意味着Spring/Tomcat/Servlet没有正确检测到编码,或者浏览器没有正确编码我的输入.同事们对此的通常回应是:在ISO中对德国进行编码或在传输之前使用Javascript进行编码.这不应该是必要的,不是吗?我的意思是,这是2011年,这就是UTF8的优点! …

html java jsp spring-mvc utf-8

5
推荐指数
1
解决办法
9739
查看次数

Backbone.Models:如何使用嵌入式集合进行深入的jSON序列化?

我有一个包含集合的Backbone模型:

var Stream =  Backbone.Model.extend({
    defaults: {
        dummyField: "1",
        excludedUsers: new Backbone.Collection()
    }
});

var s = new Stream;
s.get('excludedUsers').add( {name:'Stefan'} );
console.log(s.toJSON())
Run Code Online (Sandbox Code Playgroud)

收益率:

{ dummyField: '1',
  excludedUsers: 
   { length: 1,
     models: [ [Object] ],
     _byId: {},
     _byCid: { c1: [Object] } } }
Run Code Online (Sandbox Code Playgroud)

而不是"预期":

 { 
      dummyField: '1',
      excludedUsers: [ {name:'Stefan'} ]
 }
Run Code Online (Sandbox Code Playgroud)

因为Backbone没有深入JSONing模型.解决方法的唯一方法是在Stream的原型上覆盖toJSON方法,但这对其他情况没有帮助.是否有一般/更好的解决方案(除了沉重的Backbone.Relational插件)?

javascript backbone.js

5
推荐指数
1
解决办法
1180
查看次数