Ejemplo n.º 1
0
        public ISpecificType GetMySqlTypeBlob(DbTypeBlob type, IMySqlMigrationProfile profile, IProgressInfo progress)
        {
            string attr = type.GetSpecificAttribute("mysql", "subtype");

            if (attr == "tinyblob")
            {
                return(new MySqlTypeTinyBlob());
            }
            if (attr == "blob")
            {
                return(new MySqlTypeBlob());
            }
            if (attr == "mediumblob")
            {
                return(new MySqlTypeMediumBlob());
            }
            if (attr == "longblob")
            {
                return(new MySqlTypeLongBlob());
            }
            if (profile != null)
            {
                switch (profile.BlobAffinity)
                {
                case MySqlBlobAffinity.TinyBlob: return(new MySqlTypeTinyBlob());

                case MySqlBlobAffinity.Blob: return(new MySqlTypeBlob());

                case MySqlBlobAffinity.MediumBlob: return(new MySqlTypeMediumBlob());

                case MySqlBlobAffinity.LongBlob: return(new MySqlTypeLongBlob());
                }
            }
            return(new MySqlTypeBlob());
        }
Ejemplo n.º 2
0
        private MySqlTypeBase GetMySqlTypeDatetime(DbTypeDatetime type, IMySqlMigrationProfile profile, IProgressInfo progress)
        {
            switch (((DbTypeDatetime)type).SubType)
            {
            case DbDatetimeSubType.Date: return(new MySqlTypeDate());

            case DbDatetimeSubType.Time: return(new MySqlTypeTime());

            case DbDatetimeSubType.Datetime:
            {
                if (type.GetSpecificAttribute("mysql", "subtype") == "timestamp")
                {
                    return(new MySqlTypeTimestamp());
                }
                if (type.GetSpecificAttribute("mysql", "subtype") == "datetime")
                {
                    return(new MySqlTypeDatetime());
                }
                if (profile != null)
                {
                    switch (profile.DateTimeAffinity)
                    {
                    case MySqlDateTimeAffinity.DateTime: return(new MySqlTypeDatetime());

                    case MySqlDateTimeAffinity.Timespamp: return(new MySqlTypeTimestamp());
                    }
                }
                return(new MySqlTypeTimestamp());
            }

            case DbDatetimeSubType.Year: return(new MySqlTypeYear());
            }
            return(new MySqlTypeDatetime());
        }
Ejemplo n.º 3
0
        private MySqlTypeBase GetMySqlTypeText(DbTypeText type, IMySqlMigrationProfile profile, IProgressInfo progress)
        {
            string attr = null;

            if (type != null)
            {
                attr = type.GetSpecificAttribute("mysql", "subtype");
            }
            if (attr != null)
            {
                switch (attr)
                {
                case "tinytext": return(new MySqlTypeTinyText());

                case "text": return(new MySqlTypeText());

                case "mediumtext": return(new MySqlTypeMediumText());

                case "longtext": return(new MySqlTypeLongText());

                case "geometry": return(new MySqlTypeGeometry());

                case "point": return(new MySqlTypePoint());

                case "linestring": return(new MySqlTypeLineString());

                case "polygon": return(new MySqlTypePolygon());

                case "mutlipoint": return(new MySqlTypeMultiPoint());

                case "mutlilinestring": return(new MySqlTypeMultiLineString());

                case "mutlipolygon": return(new MySqlTypeMultiPolygon());

                case "geometrycollection": return(new MySqlTypeGeometryCollection());
                }
            }

            if (profile != null)
            {
                switch (profile.TextAffinity)
                {
                case MySqlTextAffinity.TinyText: return(new MySqlTypeTinyText());

                case MySqlTextAffinity.Text: return(new MySqlTypeText());

                case MySqlTextAffinity.MediumText: return(new MySqlTypeMediumText());

                case MySqlTextAffinity.LongText: return(new MySqlTypeLongText());
                }
            }
            return(new MySqlTypeText());
        }